VS 2017 15.3黄色三角形参考

时间:2017-08-21 21:13:11

标签: visual-studio .net-core

今天早上我升级到VS 2017 15.3,现在我的大部分参考资料都获得黄色三角形。该项目运行良好(在CLI和VS中构建良好,并且已经多次运行还原)我可以告诉(实际上在dotnetcore 2.0上更好),但这些仍然存在。有没有其他人有过这种情况或有建议?感谢。

链接到project.assets.json文件 - > https://www.dropbox.com/s/c85yuyjiu4pnget/project.assets?dl=0

Yellow triangles in Solution Explorer

同样问题灰色的使用和红色参考虽然一切都建立并运行良好。

enter image description here

Warnings Window

7 个答案:

答案 0 :(得分:7)

更新:VisualStudio Twitter帐户回复我,注意到这是一个错误,他们正在努力修复未来......

我的帖子有两个回复:

1)用灰色的东西注意到的使用问题实际上是一个ReSharper问题。如果您升级到VS 2017 15.3并使用R#,请确保将其更新为2017.2。

2)Visual Studio团队正在查看黄色三角形问题,但老实说,我认为它与构建中的警告相关联,这些引用被强制转换为较低的依赖关系(即不同级别的Newtonsoft)或预览。快速发展的.NET 2.0世界可能会加剧这个问题。黄色三角形传统上意味着缺失,但检查您的警告,看看是否相关,然后检查依赖链。一旦我收到VS团队的回复,我会更新这个答案(向他们大声喊叫,Damian Edwards + Scott Hanselman在Twitter上帮我解决这个问题)。

答案 1 :(得分:4)

在将我的(.NET 4.6.1)解决方案中的项目更新为VS2017附带的新.NET标准.csproj格式后,我遇到了引用问题上的黄色三角形。我收到警告的引用是ProjectReference类型(虽然它似乎溢出到PackageReference中,用于相关项目中的常见包。)

我没有任何构建警告,并且详细构建输出中没有任何内容表明原因可能是什么。

我可以在我的解决方案中将所有警告都记录回单个项目。我能够通过从我的解决方案中删除该项目然后将其添加回来并仅重新添加必要的项目引用来解决。

似乎问题与新的传递依赖关系支持引起的不必要的项目引用(或可能是循环)有关。删除项目并将其添加回最小ProjectReference并依赖传递依赖项支持传播依赖项后,警告全部消失。

这也解决了有问题的项目在命令行msbuild启动构建我的CI服务器时无法编译的问题,该服务器只安装了VS2017构建工具(而不是完整的IDE)。

答案 2 :(得分:2)

您可以在此处查看我对相关主题的回答:https://stackoverflow.com/a/59704420/7969733

仅出于文档目的此问题的新手 这,你会记住我:D

如果您转到:工具> NuGet管理员>配置。你呢 勾选“允许nuget ....”和“自动检查....”。

唯一要做的就是单击按钮“清除 所有NuGet缓存”

就是这样,您不必编辑可能会很危险的手动想法, 相信我,我曾经需要做一些比这里描述的步骤 很多时间,并尝试超过5步的正式Microsoft 有关该问题的文档,您可以在此处进行检查: https://docs.microsoft.com/nuget/consume-packages/package-restore#restore-packages-automatically-using-visual-studio

但是仅清理缓存即可解决所有问题

要在 Visual Studio 2019中“清除所有NuGet缓存”
工具-> NuGet程序包管理器->程序包管理器设置

答案 3 :(得分:0)

我有同样的问题,一些参考文献标有黄色三角形。但是,我能够构建并运行我的项目。 我设法通过以下步骤删除这些警告: .Net 2015 References with yellow triangle for Nuget packages on portable libraries

我打开了Visual Studio的跟踪,我在日志文件中接下来警告所有未正确加载的引用:

  

'参考:Microsoft.Win32.Primitives,Version = 4.0.2.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a,processorArchitecture = MSIL'和'Reference:C:\ Program Files(x86)\ Visual Studio \ MSBuild之间发生冲突\微软\ Microsoft.NET.Build.Extensions \ net461 \参考\ Microsoft.Win32.Primitives.dll”。选择'参考:C:\ Program Files(x86)\ Visual Studio \ MSBuild \ Microsoft \ Microsoft.NET.Build.Extensions \ net461 \ ref \ Microsoft.Win32.Primitives.dll'因为AssemblyVersion'4.0.3.0'大于'4.0.2.0'。

确切地说,我做了下一步:

  1. 从我的.csproj文件中删除了错误情况
  2. 删除了.csproj文件中未加载引用的<Private>true</Private>参数
  3. 从相应 MSBuild 文件夹中的 \ lib \ ref 文件夹中删除未加载的软件包。
  4. 在解决方案中从 \ packages 文件夹中删除了包。
  5. 恢复了nuget包。
  6. 我不确定所有这些步骤是否必要,但它对我有用。

答案 4 :(得分:0)

我在Visual Studio 2017中遇到了类似的问题。发现,如果我更改了要安装的程序包的依赖性设置(从最低依赖性到最高依赖性),一切都很好。

答案 5 :(得分:0)

引用项目和引用之间的Windows SDK版本不匹配将导致它。在vcxproj文件中,它是“ SDK版本

我正在从VS2012升级到VS2017。一切都很好,然后我升级到了libtomcrypt和libtommath的新版本。我没有调整现有项目,而是从VS2008-> VS2012-> VS2017的发行版本上转换了项目。在此过程中,我在两个新项目中都选择了Windows SDK版本10.0.17763.0。但是,所有引用这些项目的项目都是8.1,因此是警告。

答案 6 :(得分:0)

今天在导入项目时遇到了同样的问题。

Project with yellow symbols on references

失败的尝试: 尝试更新牛轧糖包,检查不正确的导入和所有可以想象的事情。没有帮助。

解决方案:最后只是尝试构建解决方案,它奏效了!

Project with no yellow symbols on references

PS:先尝试构建项目。如果它不起作用,那么去寻找解决方案。