ILMergeを利用してアセンブリDLLを結合して単一のEXEファイルを作成する手順を紹介します。
.NET Frameworkでアプリケーションを作成した場合、ライブラリDLLはアセンブリDLLとしてexeファイルと同じディレクトリに配置されます。通常はそのままで問題ありませんが、配布時にアセンブリDLLも合わせて配布する必要があるため、アセンブリの数が多い場合、単一のexeファイルにアセンブリDLLをまとめてしまいたいことがあります。
ILMergeを利用すると、アセンブリDLLをExeファイルにマージできます。
ILMergeをインストールします。ILMergeのインストール手順は「ILMerge のインストール - NuGetを利用したインストール」の記事を参照してください。
以下のコマンドを実行します。
下記のフォルダのiPentecText.dllをiPentecTextTest.exeにマージして単一のExeファイルで実行できるようにします。
下記のコマンドを実行します。
"c:\Program Files (x86)\Microsoft\ILMerge\ILMerge.exe" /v4 /out:iPentecTextTestM.exe iPentecTextTest.exe iPentecText.dll
Visual Studioでビルド完了時に自動でILMergeを実行すると、ビルド成功後にマージされたExeファイルを自動で作成できます。
プロジェクトのプロパティを表示します。プロパティ画面はソリューションエクスプローラのプロジェクトノードを選択し、右クリックでポップアップメニューを表示し[プロパティ]メニューを選択すると表示できます。
左側のメニューの[ビルドイベント]メニューを選択します。下図の画面が表示されます。
[ビルド後に実行するコマンドライン]にコマンドを記述します。
コマンド実行時のカレントディレクトリはビルド結果の出力ディレクトリになっているため、今回の場合は、下記のコマンドを設定します。
"c:\Program Files (x86)\Microsoft\ILMerge\ILMerge.exe" /v4 /out:iPentecTextTestM.exe iPentecTextTest.exe iPentecText.dll