Visual Studio 2019 intellisense在不是.NET的每个单个命名空间下显示红色花键。该项目构建并运行良好。如果我在VS 2017中打开该解决方案,则可以正常打开,没有错误。
我已经删除了.vs文件夹。我该如何解决这个问题?
编辑: 似乎共享的项目已丢失。如果我右键单击以添加参考,则找不到其他项目。我尝试从解决方案中删除一个项目并重新添加它,但“共享项目”列表仍然为空。我怀疑这与智能感知也无法找到它们的问题有关。
如果我此后在VS2017中打开该解决方案,则一切正常,因此似乎仅与VS2019相关。
答案 0 :(得分:0)
我们的解决方案记录在这里: https://github.com/dotnet/roslyn/issues/40082
我能够找到此问题的根本原因,并且 为@rolandh离线版提供了一种解决方法。
标记@jasonmalinowski,他是VS项目系统层的专家 我们的团队,以及一直在研究如何正确举报的@tmat 罗斯林的VS特定诊断。让我扩展研究结果:
- 提供的解决方案有两个具有循环引用的项目
- 项目P1具有对项目P2的ProjectReference,项目P2具有对P2.dll的元数据引用。后期转换为项目 通过我们的元数据引用到项目引用转换逻辑。
- 以上配置导致我们的VS项目代码抛出一个 CheckNotContainsTransitiveReference中的InvalidOperationException 尝试添加项目和元数据引用时请点击此处。
- 上述异常似乎在调用堆栈的某处得到了处理, 因此没有用户可见的影响。但是,这会导致项目 P1损坏的状态-最终没有文档,没有 引用等。这导致大量的智能感知级联 所有引用P1的项目中都有错误。
- 在命令行上构建项目/解决方案作为P1成功 不需要引用P2.dll。
- 不幸的是,上面的InvalidOperationException没有 转换为错误列表中的任何诊断,因此没有给用户 有关错误内容以及如何解决的信息 解决他们的问题。理想情况下,循环参考,或者实际上是任何 这样的项目系统异常,我们在其中抛出异常 工作空间层,应转换为错误列表中的诊断 通过VS层,因此它可以帮助用户修复其 项目/解决方案。 @jasonmalinowski我们是否有任何问题跟踪 这样的工作?我可以另外提出。
基本上,我们以某种方式在项目中获得了循环引用(无法通过UI),这导致了智能感知引擎中的错误。
删除此循环引用可解决此问题。