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

时间:2012-06-13 08:37:40

标签: visual-studio-2010 visual-studio setup-project setup-deployment

我有一个由3个项目组成的解决方案。我创建了一个部署项目,它只包含我解决方案中某个项目的依赖项。

到目前为止我所做的是在我的安装和部署项目中,我右键单击“应用程序文件夹”添加 - >项目成果。接下来,我从下拉列表中选择了我的主项目并选择了“主要输出”。我单击了OK,该项目的依赖项已成功包含在部署中。

我尝试在我的解决方案中为其他DLL重复相同的过程,但它没有包含它们的依赖项。

如何为每个项目包含所有依赖项?

2 个答案:

答案 0 :(得分:0)

请注意,Visual Studio安装项目检测到的依赖项更像是建议。你不应该过分信任它们,因为误报非常普遍。

对于专业安装程序,您应自行确定正确的依赖项,并以适当的形式将它们添加到项目中。例如,某些依赖项可能是运行时或框架的一部分,可以作为安装程序的先决条件添加。

如果您无法确定应用程序的依赖关系,可以尝试使用dependency walker

答案 1 :(得分:0)

VS安装程序项目依赖性步行功能非常强大,实际上是直接依赖性检查和产品二进制打包的绝佳选择。随着构建详细程度的增加,它允许直接分析每个DLL的哪个版本被引用,因此您可以获得更新构建引用所需的信息。遗憾的是,如果版本信息没有在搜索路径中找到合适的版本,那么版本信息会被添加到依赖项中,并且安装项目可能无法提取。

关于误报,我的经验是,无论是否存在该树的实际代码路径,它都会引入任何二进制引用。该问题的解决方案是重构代码(更好地细化项目)。

如果您不使用直接项目引用,则安装项目不会引入这些依赖项。这是你遇到的问题吗?否则,我会调高日志详细程度并搜索您期望的参考文献。它应该说它正在寻找哪个版本以及它在哪里搜索以及为什么它没有抓住任何东西。