【问题标题】:VS 2017 15.3 Yellow Triangles on ReferencesVS 2017 15.3 参考文献中的黄色三角形
【发布时间】:2018-01-30 00:43:03
【问题描述】:

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

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

还有灰色使用和红色引用的问题,尽管一切都构建和运行良好。

【问题讨论】:

  • 项目中可能设置了错误的.net?这也可能会有所帮助:stackoverflow.com/questions/30484196/…
  • 这与 DLL 到引用的路径有关。
  • 感谢您的反馈,但解决方案和项目与升级前一样执行良好。那是奇怪的部分。所有都是 nuget 包,所以没有路径。 VS 2017 15.3 中黄色三角形的主要变化是什么意思?
  • 所有 refs 均来自 Nuget。这在 VS 2017 15.3 之前没有发生。谢谢。
  • @dodegaard:企业版 15.3.4

标签: visual-studio .net-core


【解决方案1】:

更新:VisualStudio 推特帐户回复我说这是一个错误,他们正在努力解决这个问题....

我的帖子有两个回复:

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

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

【讨论】:

  • 我昨天发现,如果您的解决方案的 Target 不满足您的 NuGet 包 .NET Framework 要求,就会发生这种情况。例如...我正在使用来自 NuGet 的 Microsoft.TeamFoundationServer.ExtendedClient 包。我创建了一个新项目并且遇到了这个问题,直到我意识到该包指定了 .NET 4.6 并且我已经为 .NET 4.7.2 配置了我的项目。重新定位项目,转到 NuGet 控制台并执行 Update-Package -reinstall 并全部清除。
  • 哦,没有警报,没有警告,没有给出任何建议或建议......我唯一表明有问题的迹象是某些 NuGet 包上的黄色三角形......那些在与我的主要 NuGet 包依赖项不兼容的 .NET Framework。
  • 谢谢@jrypkahauer 我也有类似的情况(在解决方案中引用了一个新项目),结果证明是.Net 版本不匹配(4.5.2 与 4.5)。一旦我将另一个项目降级到 v4.5,一切都会再次运行。奇怪的是 VS2017 没有针对这个问题显示任何错误!
【解决方案2】:

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

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

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

问题似乎与新的传递依赖支持导致的不必要的项目引用(或可能是循环的)有关。在删除项目并将其添加回来后,仅使用最少的 ProjectReferences 并依靠传递依赖支持来传播依赖,警告全部消失。

这也解决了在我的 CI 服务器上使用命令行 msbuild 启动构建期间相关项目编译失败的问题,该服务器仅安装了 VS2017 构建工具(不是完整的 IDE)。

【讨论】:

    【解决方案3】:

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

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

    'Reference:Microsoft.Win32.Primitives, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL' 和 'Reference: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 包。

    我不确定所有这些步骤是否必要,但它对我有用。

    【讨论】:

    • 感谢您保存我的 WinForms 应用程序。
    • 我认为删除错误条件对我有用(尽管您已经尝试了您已经提到的大多数其他点) - 已经与它斗争了几个小时!
    【解决方案4】:

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

    仅用于文档目的对于遇到此问题的新人尝试 这个,你会记得我的:D

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

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

    就是这样,您不必手动编辑可能会造成危险的想法, 相信我,我以前需要做一些比这里描述的步骤 很多时间,试了微软官方的5个以上步骤 该问题的文档,您可以在此处查看: https://docs.microsoft.com/nuget/consume-packages/package-restore#restore-packages-automatically-using-visual-studio

    但是只要清理缓存就可以解决所有问题

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

    【讨论】:

      【解决方案5】:

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

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

      【讨论】:

        【解决方案6】:

        我在使用 Visual Studio 2017 时遇到了类似的问题。我发现,如果我更改了我想要安装的包的依赖项设置(从最低依赖项到最高),一切正常。

        【讨论】:

          【解决方案7】:

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

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

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

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

          【讨论】:

            猜你喜欢
            • 2017-07-10
            • 2017-10-25
            • 1970-01-01
            • 2016-09-09
            • 2020-02-18
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-01-08
            相关资源
            最近更新 更多