我有一个控制台应用程序和两个类库项目。
控制台应用程序必须投影对类库项目的引用。
当我构建时,它会为这两个项目生成DLL。我是否必须将这些包含在我的控制台应用程序exe文件中?有没有办法让它成功,所以我不必包括这两个dll?
理想情况下,我想要一个单独的exe。
答案 0 :(得分:5)
您必须包含任何引用的程序集,因为它们是应用程序的依赖项。
尽管如此,Microsoft提供了一个名为ILMerge的工具,它允许您将依赖项程序集与可执行文件组合在一起,以创建一个可以发送给客户的可包含的可执行程序集。
答案 1 :(得分:2)
查看ILMerge。
答案 2 :(得分:1)
您可以使用ilmerge将程序集合并为一个程序集,否则您将必须部署exe文件和dll。 例如你可以运行像
这样的命令ilmerge /target:winexe /out:MyProg.exe Program.exe ClassLib1.dll ClassLib.dll
Visual Studio没有内置的方法来执行此操作,因此您必须手动运行上述命令,作为Post Build事件,或手动将其添加到.csproj文件中。
答案 3 :(得分:0)
您应该可以通过选择引用并将“复制本地”属性设置为false来完成。
答案 4 :(得分:0)
小心ILMerge并确保了解走这条路线的性能影响。