環境に依存しない C# アプリケーションのサイズを縮小する方法は?

この記事では、アセンブリに依存しない 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, - . , .





この記事でテストについて詳しく読むことができます。





Microsoft の公式ドキュメント








All Articles