当我在Visual Studio中创建项目引用时,我是否必须在部署时包含这些项目的DLL?

时间:2010-01-28 20:01:44

标签: c# .net deployment dll

我有一个控制台应用程序和两个类库项目。

控制台应用程序必须投影对类库项目的引用。

当我构建时,它会为这两个项目生成DLL。我是否必须将这些包含在我的控制台应用程序exe文件中?有没有办法让它成功,所以我不必包括这两个dll?

理想情况下,我想要一个单独的exe。

5 个答案:

答案 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并确保了解走这条路线的性能影响。