【问题标题】:Visual Studio 2019 Project Dependency with Yellow Icon带有黄色图标的 Visual Studio 2019 项目依赖关系
【发布时间】:2019-07-31 21:48:42
【问题描述】:

我有两个全新的 C# .NET 标准库。它们每个都有对较旧的 .NET 3.5 Framework 库的项目引用。两者中只有一个在参考上带有黄色图标。

一切都构建并运行良好,但三角形仍然存在,为什么?

【问题讨论】:

  • 参考上的黄色图标通常表示无法找到实际使用的文件。如果单击引用,您可以在其属性列表中看到它的路径吗?比较路径,没有图标的路径与有图标的路径不同。
  • 奇怪的是,一个项目显然很快乐,而另一个则不快乐,尽管它们都引用了同一个项目。该 DLL 确实存在于该项目的 bin 文件夹中。
  • @Zoop 嗨朋友,这个问题有什么更新吗?它是否仍然存在,或者错误列表窗口是否可以帮助定位问题? :)
  • @LanceLi-MSFT 抱歉,我在许多项目中都像布娃娃一样被抛来抛去!今天早上终于回到了这个,打开它,切换分支,突然,没有黄色警告图标。我还没有机会改变任何东西,所以我能想到的可能就是重新启动 Visual Studio 以理顺一些内部缓存或其他东西。它也可以解释为什么它仍然编译和运行。很奇怪,两个项目可以引用同一个第三个项目,但是这两个项目中只有一个显示了警告图标。
  • 如果您对 Microsoft 有任何吸引力,我可以推荐一个关于损坏引用的工具提示吗?或者也许是一个右键菜单选项来深入了解依赖项的任何警告或错误?正如您在下面的精彩解释中所述,爬过巨大的日志可能非常麻烦。

标签: c# visual-studio nuget


【解决方案1】:

我希望他们有更好的方法来报告参考问题 而不是一个未标记的黄色图标。

不确定这是否是您真正的问题。但您可以查看 Error List window 以详细了解为什么在参考资料中显示黄色图标

一切都构建并运行良好。

在某些情况下,在 VS 中构建可以成功,尽管会出现一些构建警告。只有当存在一些构建错误时它才会失败。

我在我的项目中添加了对ForTest.dll 的引用,该程序集丢失或与当前项目不兼容,然后它在References 中显示黄色图标。现在因为在我的项目中,它不会从ForTest.dll 调用函数,所以它不会完全影响我的构建过程。然后项目构建成功并且运行良好。

我已尝试在详细模式下查看构建日志以查找错误 消息,但找不到任何明显

在构建包含多个项目的解决方案时,并在Detailed mode 中设置日志,在数百个构建日志中get lost 更容易。由于黄色图标只显示一个项目,您可以right-click the project=>rebuild 来构建项目,它使构建日志中的消息更加清晰。

或者只是使用我上面建议的错误列表窗口来检查警告和错误,而不是在故障排除期间检查数百条日志。

另外:如果您在错误列表窗口中找不到任何信息,那么可能出现黄色图标的原因是因为VS didn't load the project well。请在solution explorer 中尝试right-click the project=> unload and reload the project。如果仍然存在,请关闭所有vs实例并删除解决方案目录下的.vs文件夹,然后重新启动vs。

【讨论】:

  • 由于其他情况,我最终重新启动了Visual Studio,这似乎已经消除了警告,这实际上相当于卸载和重新加载项目。
【解决方案2】:

添加与当前 .NET 不兼容的 NuGet 包时也会出现这些错误(例如 .NET Standard 或 .NET Core 下的 .NET Framework 应用程序,或引用 .NET Framework 4.8 库等 .NET 版本来自较旧的 .NET 版本)。

检查包依赖项是否与您正在使用的项目相同。

【讨论】:

    【解决方案3】:

    根据 Microsoft 的说法,这些黄色警告标志会为每个新引用添加,然后在成功添加引用后删除(=假定有罪,直到被证明无罪)。如果解决方案资源管理器中仍然存在一些黄色警告,VS 只知道缺少该引用,但不知道原因,因此无法在错误窗口中显示警告消息。

    无法找出警告标志的原因非常烦人。报告了该问题,但微软的标准回复是:“这个问题似乎没有得到足够的要求来解决,但如果你愿意,你可以贡献你自己的解决方案。”

    所以如果你读到这里,请你到developercommunity.visualstudio.com: tell me what's wrong with the reference 2 投票赞成这个问题,告诉 MS 他们确实应该解决这个问题。

    花了几个小时试图解决一个不存在的错误后,我放弃并关闭了 VS。当我再次启动它时,问题就消失了。

    【讨论】:

    • 关闭并重新打开的 VS 方法对我很有效,这很愚蠢,甚至应该成为一件事。
    【解决方案4】:

    这也可能意味着您机器上的第三方程序集未在 gac 中注册,因此无法找到。对于较旧的项目,如果我必须手动复制 dll,然后我将使用此 powershell 脚本在它们所在的目录中注册它们:

     gci *.dll | % { gacutil /i $_.Name }
    

    【讨论】:

      猜你喜欢
      • 2010-10-10
      • 1970-01-01
      • 2021-01-07
      • 1970-01-01
      • 1970-01-01
      • 2012-12-14
      • 1970-01-01
      • 1970-01-01
      • 2021-03-11
      相关资源
      最近更新 更多