※本エントリは以前Qiitaに投稿した記事です。
また.NET Core 3.0 Prev6リリース時点での話です。
.NET Core 3.0 Preview6.0からPublishTrimmedを使用することでpublish(自己完結型展開)時に
不要なDLLの出力を抑制可能となりました。
実際にどの程度サイズが減るのか簡単に検証してみました。
PublishTrimmedオプションの使い方
以下のコマンドでpublish時にPublishTrimmed
を有効化できます。
dotnet publish -r win-x64 -c Release /p:PublishTrimmed=true
.csprojを編集する場合
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp3.0</TargetFramework> </PropertyGroup> + <PropertyGroup> + <PublishTrimmed>true</PublishTrimmed> + </PropertyGroup> </Project>
実際どのくらい減るの?
ConsoleApplication
dotnet new console -o publishSample dotnet publish -r win-x64 -c Release dotnet publish -r win-x64 -c Release /p:PublishTrimmed=true
比較項目 | PublishTrimmed無効 | PublishTrimmed有効 |
---|---|---|
ファイル数 | 226 | 64 |
サイズ(MB) | 68.9 | 28.4 |
ここは公式Blog通りですね
ASP.NET Core MVC
dotnet new mvc -o publishSample dotnet publish -r win-x64 -c Release /p:PublishTrimmed=true
比較項目 | PublishTrimmed無効 | PublishTrimmed有効 |
---|---|---|
ファイル数 | 358 | 260 |
サイズ(MB) | 86.3 | 51.5 |
Blazor(ServerSide)
dotnet new blazorserverside -o publishSample dotnet publish -r win-x64 -c Release dotnet publish -r win-x64 -c Release /p:PublishTrimmed=true
比較項目 | PublishTrimmed無効 | PublishTrimmed有効 |
---|---|---|
ファイル数 | 358 | 260 |
サイズ(MB) | 86.3 | 51.5 |
WPF
dotnet new wpf -o publishSample dotnet publish -r win-x64 -c Release dotnet publish -r win-x64 -c Release /p:PublishTrimmed=true
比較項目 | PublishTrimmed無効 | PublishTrimmed有効 |
---|---|---|
ファイル数 | 498 | 400 |
サイズ(MB) | 153 | 88.5 |
※Resourceフォルダ含む
WinForm
dotnet new wpf -o publishSample dotnet publish -r win-x64 -c Release dotnet publish -r win-x64 -c Release /p:PublishTrimmed=true
比較項目 | PublishTrimmed無効 | PublishTrimmed有効 |
---|---|---|
ファイル数 | 498 | 400 |
サイズ(MB) | 153 | 88.5 |
※Resourceフォルダ含む
総評
結構ダイエットできるっぽい
PublishSingleFile
と併用した際ファイル数が減る分起動が早くなるので良いですね(微々たるものかもしませんが.)
以上