.NETプログラムをスリム化するツールを開発しました

.NETプログラムをスリム化するツールを開発しました

.NETプログラムをスリム化するツールを開発しました。参照されているが使用されていないアセンブリを削除できます。これを使って.NET Coreプログラムを`147兆`から`59.5兆`にスリム化しました。

最終更新 2021/12/26 21:56
杨中科
読了目安 1 分
カテゴリ
.NET
タグ
.NET C# スリム化

私は、.NETプログラムをスリム化するツールを開発しました。参照されているが使用されていないアセンブリを削除します。これを使って、ある.NET Coreプログラムを147MBから59.5MBにスリム化しました。

.NETでアプリケーションを発行する際にはアセンブリをトリミングする機能がありますが、これは静的チェックのみを行います。例えば、プロジェクトがアセンブリAを使用していて、A内のクラスにM1とM2の2つのメソッドがあり、M1がアセンブリBのコードを呼び出し、M2がアセンブリCのコードを呼び出しているとします。プログラムでM1のみを呼び出し、M2を呼び出さない場合、.NETのトリミングでは、呼び出されていないM2内で参照されているアセンブリCを削除できません。

私のツールは実行時チェックを行い、実行時にまったく呼び出されないアセンブリ(リフレクションなどの動的メカニズムも考慮)を削除します。また、.NETのアプリケーション発行時のアセンブリトリミング機能は、WinFormやWPFプロジェクトをサポートしていません。

私のツールの実装原理はそれほど複雑ではありませんが、同様のソフトウェアを探しても見つからなかったため、自作しました。もし同様のツールをご存知でしたら教えてください。これが私の独自開発であることが確認できれば、ソフトウェアを完成させ(さまざまなプロジェクトや.NETバージョン、各OSとの互換性をテスト)、公開してオープンソース化する予定です。

このプロジェクトをオープンソース化する場合は、私のメディアで公開します。私のBilibili、今日頭条、抖音、微博、YouTubeなどのチャンネルをフォローしてください。チャンネル名はすべて「杨中科」です。

原文著者:杨中科

原文リンク:https://mp.weixin.qq.com/s/B7QdVQWtgBKNKOEFj2Lg4g

さらに探索

関連読書

その他の記事
同じカテゴリ / 同じタグ 2026/04/22

各OSバージョンの.NETサポート状況(250707更新)

仮想マシンとテストマシンを使用して、各OSバージョンの.NETサポート状況を確認します。OSインストール後、対応するランタイムをインストールし、Stardustエージェントを実行できることを確認します(合格条件)。

続きを読む
同じカテゴリ / 同じタグ 2026/02/07

AOTの使用経験のまとめ

プロジェクト作成当初から、新機能を追加したり新しい構文を使用したりした場合には、すぐにAOT公開テストを実施するという良い習慣を身につけるべきです。

続きを読む