複数のライブラリを参照するアプリケーションが、.exe +すべての.dllではなく、.exeファイルにのみコンパイルすることは可能ですか?
アプリケーションの名前空間と一致するようにすべての名前空間の名前を変更できることはわかっていますが、これは行いたくありません。
ありがとう
はい、MicrosoftのILMergeというツールを使用してください。プロジェクトをビルドすると、すべてのdllを1つのexeに結合できるようになります。
これは、その使用方法を示すCodeProjectチュートリアルです。
ilmerge /target:winexe /out:SelfContainedProgram.exe
Program.exe ClassLibrary1.dll ClassLibrary2.dll
更新:Blindyが述べたように、コードがReflection
名前空間で何かを使用している場合、ファイルをマージした後に問題が発生する可能性があります。マージした後、プログラムの実行中にエラーが発生し始めた場合に探し始める場所です。
ええ、それはまさにilmerge.exeが行うことを意図していることです。
ただし、レイトバウンドライブラリには注意してください(つまりAssembly.LoadFrom
)。