Visual Studio 2019 intellisense在不是.NET的每个命名空间下显示红色花体

时间:2019-03-15 01:04:21

标签: c# visual-studio intellisense visual-studio-2019

Visual Studio 2019 intellisense在不是.NET的每个单个命名空间下显示红色花键。该项目构建并运行良好。如果我在VS 2017中打开该解决方案,则可以正常打开,没有错误。

我已经删除了.vs文件夹。我该如何解决这个问题?

编辑: 似乎共享的项目已丢失。如果我右键单击以添加参考,则找不到其他项目。我尝试从解决方案中删除一个项目并重新添加它,但“共享项目”列表仍然为空。我怀疑这与智能感知也无法找到它们的问题有关。

如果我此后在VS2017中打开该解决方案,则一切正常,因此似乎仅与VS2019相关。

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

我们的解决方案记录在这里: https://github.com/dotnet/roslyn/issues/40082

  

我能够找到此问题的根本原因,并且   为@rolandh离线版提供了一种解决方法。

     

标记@jasonmalinowski,他是VS项目系统层的专家   我们的团队,以及一直在研究如何正确举报的@tmat   罗斯林的VS特定诊断。让我扩展研究结果:

     
      
  1. 提供的解决方案有两个具有循环引用的项目      
        
    • 项目P1具有对项目P2的ProjectReference,项目P2具有对P2.dll的元数据引用。后期转换为项目   通过我们的元数据引用到项目引用转换逻辑。
    •   
  2.   
  3. 以上配置导致我们的VS项目代码抛出一个   CheckNotContainsTransitiveReference中的InvalidOperationException   尝试添加项目和元数据引用时请点击此处。
  4.   
  5. 上述异常似乎在调用堆栈的某处得到了处理,   因此没有用户可见的影响。但是,这会导致项目   P1损坏的状态-最终没有文档,没有   引用等。这导致大量的智能感知级联   所有引用P1的项目中都有错误。
  6.   
  7. 在命令行上构建项目/解决方案作为P1成功   不需要引用P2.dll。
  8.   
  9. 不幸的是,上面的InvalidOperationException没有   转换为错误列表中的任何诊断,因此没有给用户   有关错误内容以及如何解决的信息   解决他们的问题。理想情况下,循环参考,或者实际上是任何   这样的项目系统异常,我们在其中抛出异常   工作空间层,应转换为错误列表中的诊断   通过VS层,因此它可以帮助用户修复其   项目/解决方案。 @jasonmalinowski我们是否有任何问题跟踪   这样的工作?我可以另外提出。
  10.   

基本上,我们以某种方式在项目中获得了循环引用(无法通过UI),这导致了智能感知引擎中的错误。

删除此循环引用可解决此问题。