繁体   English   中英

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

[英]When I make a project reference in Visual Studio, do I then have to include the DLLs for those projects when I deploy?

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

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

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

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

您必须包含任何引用的程序集,因为它们是应用程序的依赖项。

尽管如此,Microsoft提供了一个名为ILMerge的工具,它允许您将依赖项程序集与可执行文件组合在一起,以创建一个可以发送给客户的可包含的可执行程序集。

查看ILMerge

您可以使用ilmerge将程序集合并为一个程序集,否则您将必须部署exe文件和dll。 例如,你可以运行像这样的命令

ilmerge /target:winexe /out:MyProg.exe Program.exe ClassLib1.dll ClassLib.dll

Visual Studio没有提供内置的方法来执行此操作,因此您必须手动运行上述命令,作为Post Build事件,或手动将其添加到.csproj文件中。

您应该能够通过选择引用并将“复制本地”属性设置为false来完成。

小心ILMerge并确保您了解走这条路线的性能影响。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM