Fody と Costura.Fody の解説

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 ファイルで配布」が可能になります。