【问题标题】:Visual Studio 2017: References are mentioned not being built while they are already builtVisual Studio 2017:提到在已经构建时未构建引用
【发布时间】:2021-08-22 06:03:28
【问题描述】:

我正在使用 Visual Studio 2017 企业版。我正在开发一个 C# 项目,这取决于几个 NuGet 包。

提到我的一个参考文献缺失(解决方案资源管理器中的图标上方有一个黄色三角形)。当我双击它时,为了在对象浏览器中查看其内容,我收到以下错误消息:

This project cannot be viewed in the object browser because it is unavailable or not yet built.
Please ensure that the project is available and built.

您可能会想:“只需恢复包(它是 NuGet 包)就可以了”,但问题是该消息毫无意义:
在另一个项目中,我使用完全相同的 NuGet 包作为参考,一切都很好,当我在另一个项目和我当前的项目之间进行文件/目录比较时,WinMerge 提到两者是相等的。 (不仅是WinMerge,我还做了校验和比较)

所以我的问题是:Visual Studio 的This project cannot be viewed in the object browser because it is unavailable or not yet built. 错误消息的来源是什么? Visual Studio 的解决方案资源管理器(用于 NuGet 包)中黄色三角形的来源是什么?

编辑(添加:Visual Studio 版本)
供您参考,我正在使用 Visual Studio 企业版 2017 版本 15.9.36。

【问题讨论】:

  • 这两个项目的目标 .NET Framework 版本是什么。右键单击项目和属性

标签: c# visual-studio visual-studio-2017 nuget


【解决方案1】:

与此同时,我找到了一种解决方法:我从项目中删除了引用并再次添加它们,它似乎有效。显然 Visual Studio 引用处理存在一些不稳定因素。

【讨论】:

  • 项目是否在源代码管理中?您可以检查项目文件 (.csproj) 之前和之后发生的更改
  • @AkshayGaonkar:感谢您的快速回复。我的印象是有时它可以在一台 PC 上运行,而不能在另一台 PC 上运行。最重要的是,如果删除和重新创建相同的东西可以解决问题,我们可能会得出结论,源中没有问题,但在 Visual Studio 的环境中。
  • 在大多数情况下,引用程序集的路径不正确,因此它在不同的机器上不起作用。.csproj 文件中引用的HintPath 应该始终是相对路径。另外,我看到有人在源代码管理中添加 NuGet 包文件夹,这是完全错误的。包裹。 config 足以说明必须下载哪些包。
  • @AkshayGaonkar:HintPath 标签都是相对的,但正如你提到的,NuGet 包都包含在源代码管理中,这可能会导致上述问题。
  • 最好尽快修复它。如果 packages.config 上的版本控制丢失。以后很难修复所有的引用。
猜你喜欢
  • 2018-06-02
  • 1970-01-01
  • 1970-01-01
  • 2019-06-18
  • 2019-05-26
  • 2017-08-08
  • 2021-06-25
  • 2017-10-18
  • 2018-07-11
相关资源
最近更新 更多