Fody
Fody は、C# や VB.NET の ビルド後に IL(中間言語)レベルでアセンブリを書き換える「Weaver」フレームワーク です。
NuGet でインストールすると、ビルドプロセスの最後に自動的に実行され、コードを後処理してくれます。
たとえば:
自動プロパティの INotifyPropertyChanged 実装(PropertyChanged.Fody)
依存 DLL 埋め込み(Costura.Fody)
メソッドのログ注入
などが可能です。
Costura.Fody
Costura.Fody の役割
Costura.Fody は、その Fody のアドインの一つで、
「外部 DLL を exe 内にリソースとして埋め込み、単一 exe にまとめる」 機能を提供します。
🧠 仕組み
ビルド時に、プロジェクト参照や NuGet 参照された DLL を抽出
それらを実行ファイルのリソースとして埋め込み
実行時、AppDomain.AssemblyResolve イベントをフックして、埋め込まれた DLL を動的にロード
👉 これにより、実行ファイルと一緒に DLL を配布する必要がなくなり、
「単一の .exe ファイルで配布」が可能になります。