Visual Studio (C#)でDLLをEXEに埋め込む

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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です