ILMerge を使ってアセンブリを 1 つにまとめる

アプリを作るとき、参照する自作アセンブリが地味に増えてきて、しかも 1 つ 1 つは大したこと無い内容だったりするので、exe ファイル 1 つにまとめてしまいたいなーと思い、ILMerge を試しました。このツールを使うと、複数のアセンブリを 1 つにまとめることができます。また、Public なクラスなどのアクセス修飾子を Internal に変更して、外部から参照できないようにするオプションも指定可能なので、そちらも試してみました。

ILMerge の入手方法

下記のサイトからダウンロードできます。

実行方法

C:\TestSolution ソリューション内の App.exe と Common.dll をまとめて AppMerged.exe を作成することにします。
merge-assemblies-by-ilmerge_gkp4d8ec

下記のコマンドを実行します。

2 行目:今回は対象のフレームワークが .NET 4.5.1 なので、このように指定しています。別のバージョンなら、指定を変更する必要があります。
3 行目: 複数のアセンブリがまとめられた結果、作成されるアセンブリのパスを指定します。
4,5 行目: まとめる対象のアセンブリのパスを指定します。もっとたくさんある場合は、何個でも並べて指定すればオッケー。
6 行目: Public なアクセス修飾子を、Internal に変換する場合の指定。変換しないなら、この指定は不要です。

上記のコマンドを、ビルド イベントのビルド後に実行するコマンドラインに設定しておくと、ビルドのたびに自動でマージが行われるのでラクチンです。

“$(TargetDir)”などのマクロは、コマンド実行時に展開されます。

KPDN

プログラミングとゲームが好きな、しがないにゃんこ好きです。わんこも同じぐらい好きです。最近、物忘れどんどんが酷くなってきた。

コメントを残す