5

我有一个由3个项目组成的解决方案。我创建了一个部署项目,它只包含来自我的解决方案中某个项目的依赖项。如何在安装和部署项目中包含依赖关系?

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

我试着对我的解决方案中的其他DLL重复相同的过程,但它不包括它们的依赖关系。

如何包含每个项目的所有依赖关系?

回答

0

请注意,由Visual Studio安装项目检测到的依赖关系更像是建议。你不应该太信任他们,因为误报很常见。

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

如果你不能确定你的应用程序有什么依赖性,你可以尝试使用dependency walker

0

VS安装项目依赖关系行走功能非常强大,真的是直接依赖性检查和产品二进制打包的绝佳去处。随着构建详细程度的增加,它允许直接分析每个DLL的哪个版本被引用,因此您具有需要更新构建引用的信息。不幸的是,如果版本信息没有在搜索路径中找到合适的版本,则版本信息会被放入依赖项中,并且安装项目可能无法选择。

关于误报,我的经验是它会带来任何二进制引用,无论是否有实际的代码路径上的树。解决这个问题的办法是重构代码(使项目更好一点)。

如果您不使用直接项目引用,则安装项目不会引入这些依赖项。这是你遇到的问题吗?否则,我会调出日志详细信息并搜索您期望的引用。它应该说明它正在寻找哪个版本以及它在哪里搜索以及为什么它没有获取任何内容。

相关问题