1

複数のライブラリを参照するアプリケーションが、.exe +すべての.dllではなく、.exeファイルにのみコンパイルすることは可能ですか?

アプリケーションの名前空間と一致するようにすべての名前空間の名前を変更できることはわかっていますが、これは行いたくありません。

ありがとう

4

2 に答える 2

7

はい、MicrosoftのILMergeというツールを使用してください。プロジェクトをビルドすると、すべてのdllを1つのexeに結合できるようになります。

これは、その使用方法を示すCodeProjectチュートリアルです。

ilmerge /target:winexe /out:SelfContainedProgram.exe 
        Program.exe ClassLibrary1.dll ClassLibrary2.dll

更新:Blindyが述べたように、コードがReflection名前空間で何かを使用している場合、ファイルをマージした後に問題が発生する可能性があります。マージした後、プログラムの実行中にエラーが発生し始めた場合に探し始める場所です。

于 2012-04-11T18:59:45.800 に答える
4

ええ、それはまさにilmerge.exeが行うことを意図していることです。

ただし、レイトバウンドライブラリには注意してください(つまりAssembly.LoadFrom)。

于 2012-04-11T19:00:14.670 に答える