1

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

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

谢谢

4

2 回答 2

7

是的,使用 Microsoft 称为ILMerge的工具。构建项目后,它将允许您将所有 dll 合并到一个 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 回答