【发布时间】:2016-08-22 09:33:52
【问题描述】:
在解决方案资源管理器中,具有引用的 vcxproj 项目会在与该项目关联的每个引用上显示一个警告符号。当引用突出显示时,属性面板会指示完整路径是:
无法解析“Microsoft.VisualStudio.ProjectSystem.References.UnresolvedBuildDependencyProject Reference”引用。
如果按下“...”框,则会显示相同的错误消息框,并且我无法选择新的参考。我已经尝试删除引用并再次添加它,但结果是一样的。添加新项目引用时,结果是一样的。
这一切都是在我使用 Visual Studio 2008 (v90) 工具集进行编译时发生的。如果我使用 Visual Studio 2015 (v140) 工具集进行编译,则引用库的完整路径会正确显示。
一些背景:
我将我的项目从 Visual Studio 2008 升级到 Visual Studio 2015。该项目包含托管和非托管的混合类型,类型为 .vcxproj。在这台机器上,已经安装了 Visual Studio 2008 可再发行组件。这使我能够使用 Visual Studio 2008 (v90) 工具集进行编译。我的意图是首先在 VS2015 中使用我的 VS2008 设置编译我的项目(出于限制性原因,我必须使用 v90 工具集)。因此,我相应地配置了 VC++ 目录。链接项目的配置属性中没有链接器选项。在引用的属性中,启用了以下配置:
- 复制本地 - 真
- 复制本地卫星程序集 - 错误
- 参考程序集输出 - 真
- 链接库依赖项 - 错误
- 使用库依赖输入 - 错误
- 完整路径 - 无法解析“Microsoft.VisualStudio.ProjectSystem.References.UnresolvedBuildDependencyProjectReference”引用
【问题讨论】:
-
感谢您的链接。不,我没有看到这个链接,我看到了一个类似的,但唯一的主题是路径删除和路径重命名。我会看看这个。
-
我不确定这是一个答案,但更多的是猜测。由于我正在处理一个非托管项目,因此不应使用引用。它主要用于托管项目。如果一个非托管项目需要引用另一个非托管项目,正确的方法是使用项目依赖项。我想我很困惑,因为在将我的项目升级到 VS2015 后,所有这些引用都是自动创建的。我在 VS2008 中仔细检查了我的原始项目,发现相同的项目之前没有引用。
-
总结一下:VS2015 试图从非托管项目的现有项目依赖项中自动创建引用是一种奇怪的行为。
-
通过使用项目依赖项,您正在添加引用。对于 VC++ 项目,它们是相同的。
标签: c++ visual-studio linker dependencies projects-and-solutions