NET Coreプログラムスリムがリリース、プログラムサイズを1/3に圧縮

NET Coreプログラムスリムがリリース、プログラムサイズを1/3に圧縮

NET Coreには未使用コードをトリミングする機能がありますが、静的解析を使用して実装されているため、最適なトリミングはありません。

最后更新 2022/03/10 13:12
杨中科
预计阅读 2 分钟
分类
.NET
标签
.NET C# .NET Core カットアウト。 スリム·スリム

NET Coreには未使用コードをトリミングする機能がありますが、静的解析を使用して実装されているため、最適なトリミングはありません。以下の2つの欠点がある。

  1. Windows FormsやWPFはサポートされておらず、プログラムのカスタマイズ機能に対する最も強い需要はデスクトップアプリケーションの開発者です。

  2. 実行時に使用されなかったアセンブリは削除できません。例えば、プログラムはAアセンブリを使用し、AプログラムはBとCの両方のアセンブリを参照し、AアセンブリのM 1メソッドのみがBアセンブリを使用し、AアセンブリのM 2メソッドのみがCアセンブリを使用します。このプログラムでは、AのM 1メソッドのみが呼び出され、AのM 2メソッドは呼び出されません。Cアセンブリは呼び出されませんが、未使用コードをクリップする機能は静的参照チェックのみを行うため、Cアセンブリはまだクリップされません。

  3. 反射をうまくサポートできない。静的解析を使用して実装されているため、リフレクションによって実行時にロードされるアセンブリをカットすることができます。

因此我开发了一个用来对.NET Core 程序进行瘦身的应用程序,它则可以解决上面提到的.NET Core 的【剪裁未使用的代码】问题,它支持Windows Forms和WPF ,它会在运行时分析程序加载的程序集,从而得知哪些程序集没有被使用,因此它不仅 能删掉更多没有被使用的程序集,而且能天然地 支持反射

プログラムカット効果の比較:

オリジナルサイズ。 NET組み込みクリッピング Zack.DotNetTrimmer
空のCore MVCプロジェクト 97MB 50.3MB 43.6MB
空のWebAPIプロジェクト 93MB 46.3MB 34.5 MB
空のWPFプロジェクト 152 MB サポートなし。 75.2 MB
空のWinFormsプロジェクト 152 MB サポートなし。 50.0 MB

项目开源地址:https://github.com/yangzhongke/Zack.DotNetTrimmer/

Keep Exploring

延伸阅读

更多文章
同分类 / 同标签 2026/04/22

バージョン別の. NETサポート状況(250 7 0 7更新)

仮想マシンとテストマシンを使用して、各バージョンのオペレーティングシステムの. NETサポートをテストします。オペレーティングシステムのインストール後、対応するランタイムを測定し、スターダストエージェントをパスとして実行できます。

继续阅读
同分类 / 同标签 2026/02/07

AOTの使用経験

プロジェクトの最初から、新しい機能が追加されたり、新しい構文が使用されたりするたびに、AOTリリーステストを行うという良い習慣を身につける必要があります。

继续阅读