引用多个库的应用程序是否有可能仅编译为.exe文件而不是.exe +所有.dll?
我知道我可以重命名所有名称空间以匹配应用程序的名称空间,但我不想这样做。
由于
答案 0 :(得分:7)
是的,请使用Microsoft提供的名为ILMerge的工具。在构建项目之后,它将允许您将所有dll组合到一个exe中。
这是一个显示如何使用它的CodeProject Tutorial
ilmerge /target:winexe /out:SelfContainedProgram.exe
Program.exe ClassLibrary1.dll ClassLibrary2.dll
更新:作为Blindy mentioned如果您的代码使用Reflection
namespace中的任何内容,则在合并文件后可能会遇到问题。这是一个开始查看合并后运行程序时是否开始出错的地方。
答案 1 :(得分:4)
是的,这正是ilmerge.exe的意思。
注意后期绑定的库(即Assembly.LoadFrom
)。