如何在安装和部署项目中包含依赖项?

6
我有一个方案由三个项目组成。我创建了一个部署项目,只包含解决方案中一个项目的依赖项。
到目前为止我做的是,在我的安装和部署项目中,我右键单击“应用程序文件夹”,选择添加 --> 项目输出。然后我从下拉菜单中选择了我的主要项目并选择了“主输出”。我点击确定,该项目的依赖项成功包含在部署中。
我尝试为解决方案中的其他DLL重复相同的过程,但它没有包含它们的依赖项。
如何为每个项目包括所有依赖项?
2个回答

1
请注意,Visual Studio安装项目检测到的依赖关系更像是建议。您不应过于信任它们,因为误报非常普遍。
对于专业的安装程序,您应该自己确定正确的依赖关系,并以适当的形式将它们添加到您的项目中。例如,一些依赖项可能是运行时或框架的一部分,可以作为先决条件添加到您的安装程序中。
如果您无法确定应用程序具有哪些依赖项,则可以尝试使用dependency walker

0

VS安装项目的依赖项遍历能力非常强大,是直接检查依赖关系和产品二进制包装的绝佳去处。通过增加构建详细程度,它允许直接分析引用的每个DLL版本,因此您拥有更新构建引用所需的信息。不幸的是,版本信息嵌入到依赖项中,如果设置项目在搜索路径中找不到适当的版本,则可能无法捕获到。

关于误报的问题,我的经验是它会引入任何二进制引用,而不管是否存在实际的代码路径。解决这个问题的方法是重构代码(更好地粒度化项目)。

如果您不使用直接项目引用,则设置项目将不会引入这些依赖项。您遇到的是这个问题吗?否则,我会增加日志详细程度并搜索您期望的引用。它应该说明正在寻找哪个版本以及搜索了哪里以及为什么没有抓取任何东西。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接