この記事では、アセンブリに依存しない C# アプリケーションのサイズを 2 ~ 4 分の 1 に縮小する方法についての私の経験を共有します。
注意:プログラム コンテンツの圧縮は、自己完結型の出版物でのみ利用できます。また、すべてのアクションは Visual Studio Preview 2019 で行われます。
すぐに修正するためにここにいる場合は、次のことを行う必要があります。
.csproject に次の行を追加します。
危険モード:未使用のクラスとメソッドを削除します。アプリケーションが正常に動作しなくなるリスクがあるため、公開後にすべてのアプリケーション機能をテストする必要があります。
<PublishSingleFile>true</PublishSingleFile>
<SelfContained>true</SelfContained>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<PublishTrimmed>true</PublishTrimmed>
<TrimMode>Link</TrimMode>
より安全なモード:未使用のアセンブリのみを削除します。
<PublishSingleFile>true</PublishSingleFile>
<SelfContained>true</SelfContained>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<PublishTrimmed>true</PublishTrimmed>
<TrimMode>CopyUsed</TrimMode>
次に、プロジェクトを右クリック → 公開 → フォルダー → 完了 → すべての設定を表示。次の設定を設定します。
展開モード: 自己完結型
TはWIN-x64のか、ご使用のバージョン:ランタイムをARGET。( RuntimeIdentifier行と一致する必要があります)
[ファイル発行オプション] を展開し、[単一ファイルを作成]および [未使用のアセンブリをトリム] の下にあるボックスをオンにします。
[公開] ボタン をクリックします。
すべてが同じ、チームがあるだけ
危険モード:
dotnet publish -c Release -r win10-x64 -p:PublishTrimmed=True -p:TrimMode=Link -p:PublishSingleFile=true --self-contained true
より安全なモード:
dotnet publish -c Release -r win10-x64 -p:PublishTrimmed=True -p:TrimMode=CopyUsed -p:PublishSingleFile=true --self-contained true
上記の設定の背後で何が起こっているかの詳細
3 , Visual Studio.
PublishTrimmed .
TrimMode . .
2 : CopyUsed (Assembly-level trimming) Link (Member-Level Trimming).
Assembly-level trimming — . , , , . 300 96 . ZIP 30.
Member-Level Trimming — . , .. - , , , , . , 300 86, - . , .