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

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

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


当前回答

我发现,如果被引用的项目的目标是框架的更高版本,而不是试图使用它的项目,就会发生这种情况。你可以通过进入输出窗口并寻找类似的内容来判断这是否是问题所在:

无法解析主引用“my_reference”,因为它 是基于“. net framework,Version=v4.7.2”框架构建的。这 是比当前目标框架更高的版本吗 “.NETFramework, Version = v4.7 "。

解决方案是更改一个或其他项目的目标框架。

其他回答

我发现,如果被引用的项目的目标是框架的更高版本,而不是试图使用它的项目,就会发生这种情况。你可以通过进入输出窗口并寻找类似的内容来判断这是否是问题所在:

无法解析主引用“my_reference”,因为它 是基于“. net framework,Version=v4.7.2”框架构建的。这 是比当前目标框架更高的版本吗 “.NETFramework, Version = v4.7 "。

解决方案是更改一个或其他项目的目标框架。

也许你试图重置你的智能感知缓存。在visual studio 2012中,当我在一个有许多部分类定义的大型项目中工作时,我也遇到过类似的问题。 减少局部值部分地解决了问题,同时也清除了智能感知缓存。

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

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

很多事情都可能导致它,这里有一长串答案。以下是我解决这个问题的方法,在尝试了几乎所有其他方法之后。

在DEBUG模式下构建解决方案。然后在发布模式下构建它(当它有红色波浪线时,它不应该构建,但在我的情况下,它只是警告,应该有绿色波浪线,但它陷入混乱,给他们红色波浪线,即使在发布模式下,它还是构建了)。然后在DEBUG模式中构建。朝手上吐口水,转身三次可选。

对我来说很有用,其他都没用。

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