[C#] EXEとDLLをマージして1つのEXEファイルにする
C#でプログラムを作成する際に参照設定で追加していると、ビルドフォルダにはDLLファイルがコピーされます。
これらのDLLファイルがないと実行できないので、配布する際にはDLLと一緒にコピーする必要があります。
大きなプログラムならそれでいいんですが、ちっさなおまけプログラムの場合、EXEだけコピーして実行できたら便利です。
そういう時は、EXEファイルにDLLファイルをマージして1ファイルにすることができます。
1. ILMergeをインストールする
http://www.microsoft.com/en-us/download/details.aspx?id=17630
2. EXEファイル出力フォルダでコマンドを実行する
“c:\Program Files (x86)\Microsoft\ILMerge\ILMerge.exe” /wildcards /out:Test_merge.exe Test.exe *.dll
※実行したらエラーになった
An exception occurred during merging:
Unresolved assembly reference not allowed: WindowsBase.
.NET Frameworkの場所を追加するといいらしい 実際にコンパイルに使用している.NET Frameworkのパスを指定する
“c:\Program Files (x86)\Microsoft\ILMerge\ILMerge.exe” /wildcards /out:Test_merge.exe Test.exe *.dll /targetplatform:v4,”C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6″
マージ後のファイルサイズは単純にすべてのファイルのサイズを足したくらいのサイズになる。
EXEはできても実行できない場合がある。
== ランキングに参加しています。ぜひクリックお願いします ==
[Excel] VLOOKUP関数の範囲はセル指定でなくてもよい SQLServerはNullと空文字を区別する