Visual Studio (C#)のバイナリexeとdllをまとめる方法について調べたのでメモ
ILMergeが使えない
自分の環境ではエラーが出てまともに使えなかった。
環境は.NET 4.7.2, Windows 10 64bit
他の方法を探す
いろいろ探していたところ、Fody/Costura というものを教えてもらった。
nugetでインストールできるらしいので使ってみた。
Fody/Costuraを使ってみる
XMLファイルを書くだけで簡単にDLLをEXEに埋め込むことができた。
手順
- nugetでCostura.Fodyをインストールする。
- ファイルFodyWeavers.xmlをプロジェクトのルートに作成し、
以下の内容で保存する。
<?xml version="1.0" encoding="utf-8" ?>
<Weavers>
<Costura />
</Weavers>
除外したいライブラリがある場合は
<?xml version="1.0" encoding="utf-8" ?>
<Weavers>
<Costura>
<ExcludeAssemblies>
Foo
Bar
</ExcludeAssemblies>
</Costura>
</Weavers>
のようにファイルの拡張子を抜いて記述する。
そのほかの設定はこちらから。
https://github.com/Fody/Costura