Fody.Costuraを利用して複数のアセンブリをまとめ、単一の実行ファイルを作成する
これまで、複数のアセンブリをまとめる場合MicrosoftのILMergeを利用していた。
https://www.microsoft.com/en-us/download/details.aspx?id=17630
ILMergeはコマンドラインツールなので、プロジェクトのビルド後のイベントに実行コマンドを記述して利用していたのだが、アセンブリが増えたり減ったりする度にコマンドを編集しなければならず結構不便だった。
Fodyは.Netのビルドフローの中で色々やるAPIを提供するプラットフォーム。
CosturaはFodyで動作するプラグインで、プロジェクト内のアセンブリを自動的に実行ファイルにマージしてくれる。
インストール
NuGetからCostura.Fody
を検索してインストールする。
使用方法
プロジェクト内のすべてのアセンブリを一つにまとめたいだけの場合、特に何もする必要はない。
Costuraインストール後にビルドを行うだけで自動的にアセンブリがマージされる。
特定のアセンブリを除外したい場合、Costuraインストール時にプロジェクトに追加されるFoyWeavers.xml
ファイルを編集する。
例えば、Moqを除外したい場合はこのような感じ。
<?xml version="1.0" encoding="utf-8"?> <Weavers> <Costura> <ExcludeAssemblies> Moq </ExcludeAssemblies> </Costura> </Weavers>