6

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

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

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

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

4

2 回答 2

1

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

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

如果您无法弄清楚您的应用程序具有哪些依赖项,您可以尝试使用依赖项walker

于 2012-06-14T06:38:24.637 回答
0

VS Setup 项目的依赖遍历能力非常强大,确实是直接依赖检查和产品二进制打包的好去处。随着构建详细程度的增加,它允许直接分析引用每个 DLL 的哪个版本,以便您获得更新构建引用所需的信息。不幸的是,版本信息被烘焙到依赖项中,如果在搜索路径中找不到合适的可用版本,安装项目可能无法获取。

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

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

于 2015-08-14T01:37:53.843 回答