我有一个问题与Visual Studio的c#解决方案。它会显示完全随机的错误,但项目会构建。现在,我有33个有错误的文件,我可以在所有文件中看到红色的弯曲线。

我尝试清理/重新构建解决方案,关闭Visual Studio,甚至重新启动计算机。我可以修改.cs文件,并看到解决方案中的更改。

有人知道为什么会这样吗?


当前回答

我体验过智能感知显示不存在的分散注意力的错误,但仍然能够在Visual Studio 2019中构建和调试项目。此问题在Visual Studio 2017中没有出现。在这个问题上,我们无法导航到Visual Studio中的各种参考。

在尝试了所有发布的选项并找到这篇关于导航符号的文章后:https://stackoverflow.com/a/49100341/999011

我们这种情况的解决方案与Microsoft.Net.Compilers & 项目文件中的Microsoft.CodeDom.Providers.DotNetCompilerPlatform引用,在上面的帖子中提到过。

然而,我从来没有更新过它们,我只是发现在项目文件中有多个对不同版本的引用。在清理完这些文件后,每个包只有一个引用 Microsoft.CodeDom.Providers。DotNetCompilerPlatform,分散注意力的红色涂鸦消失了,导航符号开始工作。

我只能推测,额外的引用是在升级期间添加的,因为我认为这个项目最初是在Visual Studio 2015中创建的。

其他回答

我遇到过这样的问题,智能感知似乎不能识别一个项目的存在(很多“找不到这种类型”,“这个名称空间不存在”等错误)。

在所有引用项目中删除并重新添加项目引用可以解决问题,但是可以通过编辑问题项目的.proj文件来修复潜在的原因。

在“缺失的”project' .csproj文件的顶部附近有一个元素:

<ProjectGuid>{GUID}</ProjectGuid>

在所有引用项目中。csproj文件都是项目引用:

<ProjectReference Include="..\OffendingProject\OffendingProject.csproj">
  <Project>{ANOTHER-GUID}</Project>
  <Name>Offending Project</Name>
</ProjectReference>

引用的GUID与项目的GUID不匹配。用{ANOTHER-GUID}替换上面的{GUID}解决了这个问题,而不必经过每个引用项目。

有很多删除SUO /隐藏解决方案文件的答案。

就我而言,这是因为我需要以管理员身份运行Visual Studio才能发布。会用管理权限覆盖那些文件。现在,当作为标准用户运行时,我无法摆脱任何错误。

如果我重新运行在管理模式,我能够解决所有的错误。

我在VS2019中的症状是我会构建一些错误。然后修复错误,构建就可以工作了,如Output窗口所示。但是错误窗口仍然显示旧的错误。我可以运行得很好。关闭VS2019并重新打开解决了这个问题,但只是一段时间。这在版本16.4.3开始发生

这个解决方案似乎对我很有效:

取消勾选工具->选项->项目和解决方案->通用->允许并行项目初始化

我发现这个解决办法埋在这里的评论:https://developercommunity.visualstudio.com/content/problem/483450/vs-2019-intellisense-reports-compile-errors-when-r.html

以下是一些流行的答案。如果答案对你有帮助,给它点赞:

选项1:清洁,构建和刷新(@Mike Fuchs选项)

正如@Mike Fuchs提到的,尝试以下操作:

在菜单中,构建>清洁解决方案 和 在菜单中,生成>生成解决方案

选择有问题的项目,然后点击刷新按钮:

选项2:清除,关闭,重新启动和构建(@像素选项)

正如@Pixel提到的,尝试以下操作序列:

清洗溶液 关闭Visual Studio Open Visual Studio 构建解决方案

选项3:清除ReSharper缓存(@GammaOmega选项)

如果你有ReSharper,试着清空ReSharper缓存:

在菜单中,ReSharper > Options > Environment > General > Clear cache

和禁用和重新启用ReSharper:

在菜单中,工具>选项> ReSharper > General > Suspend / Restore

选项4:删除.suo文件(@Neolisk选项)

正如@Neolisk提到的,删除.suo文件可能会解决你的问题。对于Visual Studio 2015,该文件位于:

[解决路径]/。vs /解决方案名称/发掘/ .suo

对于Visual Studio 2017:

[解决路径]/。vs /解决方案名称/ v15 / .suo

注意,.vs目录是隐藏的。

选项5:卸载和重新加载项目(@TTT选项)

正如@TTT提到的,尝试卸载导致问题的项目:

在解决方案资源管理器中,右键单击项目,卸载项目。

然后重新载入

在解决方案资源管理器中,右键单击项目,重新加载项目。

选项6:删除并添加Microsoft。CSharp参考(@Guilherme选项)

正如@Guilherme所提到的,尝试删除并添加“微软”的引用。从存在问题的项目中。

在“解决方案资源管理器”中展开项目,展开“引用”,右键单击“微软”。CSharp”和Remove。 然后,右键单击引用>添加引用,选择“微软。单击“确定”

以我为例,当我在更新sdk到最新版本后第一次尝试使用c# 9.0编写的项目时,无论我做什么,它都会显示红线(它会构建得很好)。这里的一切我都试过了,但都没用。 最后,我意识到问题出在Resharper的语法高亮笔上。 当我更新Resharper时,所有的红色都消失了。