将.dll编译为可执行文件

时间:2012-04-11 18:57:47

标签: c# winforms

引用多个库的应用程序是否有可能仅编译为.exe文件而不是.exe +所有.dll?

我知道我可以重命名所有名称空间以匹配应用程序的名称空间,但我不想这样做。

由于

2 个答案:

答案 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)。