我开发了一个对.Net 程序瘦身的工具,可以把被引用但是没有被使用的程序集删除。我用它把一个.Net core 程序从147兆瘦身到59.5兆。

NETでは、プログラムをパブリッシュする際にアセンブリをトリミングする機能がありますが、その機能は静的チェックのみを行うことができます。例えば、プロジェクトではAアセンブリを使用しており、AアセンブリのクラスにはM 1とM 2の2つのメソッドがあり、M 1メソッドはBアセンブリのコードを呼び出し、M 2メソッドはCアセンブリのコードを呼び出します。プログラムでM 1メソッドのみが呼び出され、M 2メソッドが呼び出されない場合、. NETクリッピングでは、呼び出されたM 2メソッドが呼び出されていないCアセンブリをクリッピングできません。
私のツールはランタイムチェックを行い、実行時に呼び出されないアセンブリ(リフレクションなどの動的メカニズムを考慮)を削除します。NETのパブリッシャのアセンブリクリッピング機能もWinForm、WPFプロジェクトをサポートしていません。
私のツールの実装原理は複雑ではありませんが、探しても類似のソフトウェアが見つからなかったので、自分で作成しました。このようなツールを知っている人は、私に知らせてください。これが私の最初のものであることが確認されたら、私はそれを完成させ(さまざまなプロジェクトや. NETバージョン、さまざまなオペレーティングシステムとの互換性をテストします)、リリースしてオープンソース化します。
このプロジェクトがオープンソースであれば、私は私のセルフメディアに投稿します、友人は私のビービーリー、今日の見出し、ビブラート、マイクロブログ、チューブなどのチャンネルに注意を払うことができます、チャンネル名は“楊中科”です。
オリジナル:Jan Koco
原文へのリンク:https//mp.weixin.qq.com/s/B7QdVQWtgBKNKOEFj2Lg4g