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

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

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


当前回答

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

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

和禁用和重新启用ReSharper:

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

其他回答

tldr;卸载并重新加载有问题的项目。

当这种情况发生在我身上时,我(习惯)尝试关闭VS并重新打开它。这可能在一半的时间里是有效的。当它不起作用时,我会关闭解决方案,删除.suo文件(或整个.vs文件夹)并重新打开解决方案。到目前为止,这对我来说总是有效的(在过去的6个月里超过10次),但它有点乏味,因为有些东西会重置,比如你的构建模式,启动项目等。

由于通常只有一个项目有问题,我只是尝试卸载该项目并重新加载它,这是有效的。我的样本容量只有1,但它比其他两个选项快得多,所以可能值得一试。(更新:我的一些同事现在也在尝试这个方法,到目前为止,每次都很有效。)我怀疑这是可行的,因为它写入.suo文件,并可能修复了导致问题开始的损坏部分。

注意:这似乎适用于VS 2022、2019、2017和2015。

我清洗了溶液,关闭VS,重新打开,构建溶液,未解析的红色线被清洗,构建成功。

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

在所有引用项目中删除并重新添加项目引用可以解决问题,但是可以通过编辑问题项目的.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}解决了这个问题,而不必经过每个引用项目。

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

我已经尝试了所有的6个选项,没有一个对我有效。下面的解决方案解决了我的问题。

关闭VS。 删除隐藏的”。Vs "文件夹,放在解决方案文件旁边。 重新启动VS并加载解决方案。