我在 C# 解决方案上遇到了 Visual Studio 的问题。它显示完全随机的错误,但项目构建。现在,我有 33 个有错误的文件,我可以在所有文件中看到红色的波浪线。
我尝试清理/重建解决方案,关闭 Visual Studio,甚至重新启动计算机。我可以修改 .cs 文件并看到解决方案中的更改。
有谁知道它为什么这样做?
我在 C# 解决方案上遇到了 Visual Studio 的问题。它显示完全随机的错误,但项目构建。现在,我有 33 个有错误的文件,我可以在所有文件中看到红色的波浪线。
我尝试清理/重建解决方案,关闭 Visual Studio,甚至重新启动计算机。我可以修改 .cs 文件并看到解决方案中的更改。
有谁知道它为什么这样做?
如果您有 ReSharper,请尝试清空 ReSharper 缓存:
在菜单中,ReSharper > 选项 > 环境 > 常规 > 清除缓存
并禁用和重新启用 ReSharper:
在菜单中,工具 > 选项 > ReSharper > 常规 > 暂停/恢复
清除 Resharper 的缓存在我的情况下没有帮助,尝试了暂停/恢复,以及修复 Resharper,使用 JetBrains 网站上的最新下载 - 这些都没有帮助。这是在我尝试关闭/重新打开 VS、重新启动我的机器、重复、构建/重建及其组合之后。
有趣的是,在 VS 的第二次重新启动后暂停 Resharper 似乎解决了问题,但在我启用 Resharper <--我尝试执行此序列 2-3 次以确保模式后它又回来了。
无论如何,当我找到这篇文章时,我仍然遇到问题:
所以我用解决方案删除了同一文件夹级别的隐藏.SUO文件,它神奇地解决了所有红色。
注意 - 对于 Visual Studio 2015,.SUO文件位于.vs/[solution_name]/v14隐藏文件夹中。
tldr; 卸载并重新加载问题项目。
当这种情况发生在我身上时,我(曾经)尝试关闭 VS 并重新打开它。这可能工作了大约一半的时间。当它不起作用时,我会关闭解决方案,删除 .suo 文件(或整个 .vs 文件夹)并重新打开解决方案。到目前为止,这一直对我有用(在过去 6 个月中超过 10 次),但这有点乏味,因为有些事情会被重置,比如你的构建模式、启动项目等。
由于通常只有一个项目有问题,我只是尝试卸载该项目并重新加载它,这很有效。我的样本量只有 1,但它比其他两个选项快得多,所以也许值得一试。(更新:我的一些同事现在也尝试过这个,到目前为止它每次都有效。)我怀疑这是有效的,因为它写入 .suo 文件,并且可能修复了导致问题的损坏部分首先。
注意:这似乎适用于 VS 2019、2017 和 2015。
我清理了解决方案,关闭了 VS,重新打开它,构建解决方案,红色未解决的行被清理并构建成功。
我发现在 Visual Studio 2017 中使用 Git 时经常发生这种情况,切换存在依赖代码更改的分支。即使项目将成功构建,错误列表中仍会存在错误。
这些错误通常是命名空间问题和缺少引用,即使库引用存在。
解决:
我已经尝试了所有 6 个选项,但对我没有任何作用。以下解决方案解决了我的问题。
关闭VS。删除解决方案文件旁边的隐藏“.vs”文件夹。重新启动 VS 并加载解决方案。
这是流行答案的集合。如果对您有帮助,请支持答案的 OP:
正如@Mike Fuchs提到的,尝试以下操作:
在菜单中,构建 > 清洁解决方案
和
在菜单中,构建 > 构建解决方案
并选择有问题的项目,然后单击刷新按钮:
正如@Pixel提到的,请尝试以下操作序列:
- 清洁溶液
- 关闭 Visual Studio
- 打开 Visual Studio
- 构建解决方案
如果您有 ReSharper,请尝试清空 ReSharper 缓存:
在菜单中,ReSharper > 选项 > 环境 > 常规 > 清除缓存
并禁用和重新启用 ReSharper:
在菜单中,工具 > 选项 > ReSharper > 常规 > 暂停/恢复
正如@Neolisk提到的,删除 .suo 文件可能会解决您的问题。对于 Visual Studio 2015,该文件位于:
[解决方案路径]/.vs/[解决方案名称]/v14/.suo
对于 Visual Studio 2017:
[解决方案路径]/.vs/[解决方案名称]/v15/.suo
请注意,.vs 目录是隐藏的。
正如@TTT提到的,尝试卸载导致问题的项目:
在解决方案资源管理器中,右键单击项目,卸载项目。
并重新加载它
在解决方案资源管理器中,右键单击项目,重新加载项目。
正如@Guilherme提到的,尝试从有问题的项目中删除并添加对“Microsoft.CSharp”的引用。
在解决方案资源管理器中,展开项目,展开“参考”,右键单击“Microsoft.CSharp”并删除。
然后,右键单击“引用”>“添加引用”,从列表中选择“Microsoft.CSharp”并单击“确定”
我遇到了这样的问题,Intellisense 似乎没有识别出一个项目的存在(很多“找不到这种类型”、“这个命名空间不存在”等错误)。
在所有引用项目中删除并重新添加项目引用可以解决问题,但可以通过编辑问题项目的 .proj 文件来修复根本原因。
“缺失”项目的 .csproj 文件顶部附近是一个元素:
<ProjectGuid>{GUID}</ProjectGuid>
在所有引用项目中,.csproj 文件都是项目引用:
<ProjectReference Include="..\OffendingProject\OffendingProject.csproj">
<Project>{ANOTHER-GUID}</Project>
<Name>Offending Project</Name>
</ProjectReference>
引用 GUID 与项目的 GUID 不匹配。{GUID}
将上面的问题替换为{ANOTHER-GUID}
已解决的问题,而无需遍历每个引用项目。
删除隐藏文件路径=你的解决方案\.vs\你的解决方案名称\v15\.suo
对于 VS-2017,删除 .vs 文件夹对我有用。
很多事情都可能导致它,正如这里一长串的答案所证明的那样。这是为我解决的问题,首先尝试了几乎所有其他内容。
在调试模式下构建您的解决方案。然后在 RELEASE 模式下构建它(当它有红色波浪线时它不应该构建,但在我的情况下,它只是应该有绿色波浪线的警告,但它陷入混乱并给它们红色波浪线,它即使在发布模式下也无论如何构建)。然后在 DEBUG 模式下构建。吐在你的手上,转三圈可选。
为我工作,当没有其他事情时。
我注意到有时在切换 git 分支时,Visual Studio (2017) 无法识别已添加到第二个分支中的某些文件的类型。删除 .vs 文件夹可以解决问题,但也会破坏所有工作区设置。这个技巧似乎对我很有效:
这会导致 Intellisense 解析它在切换分支时丢失的文件。
有时我必须通过浏览所有项目并手动删除“bin”和“obj”文件夹来进行自定义清理。要在 Visual Studio 中查看它们,您必须为每个项目启用隐藏文件和文件夹。完成后,重建解决方案。
以下解决方案对我有用
1 - 关闭 VS
2 - 删除 .vs 文件夹
3 - 打开VS
4 - 构建解决方案
也许您尝试重置智能感知缓存。在处理具有许多部分类定义的大型项目时,我在 Visual Studio 2012 中遇到了类似的问题。减少部分部分解决了问题,同时也清除了智能感知缓存 - 一段时间。
删除.vs
文件夹解决了我的问题。
但它也重置了我的解决方案在 VS中的当前设置。就像,我在解决方案中卸载的项目被重新加载,当我重新启动 VS 时,所有固定和打开的文档也被关闭。
我在 VS2019 中的症状是构建时会出现一些错误。然后我会修复错误,构建就会工作,如“输出”窗口中所示。但是错误窗口仍然显示旧错误。我可以很好地运行它。关闭 VS2019 并重新打开解决了这个问题,但只是一小会儿。这开始发生在版本 16.4.3
这个解决方案似乎对我有用:
取消选中工具->选项->项目和解决方案->常规->允许并行项目初始化
我发现此修复程序隐藏在此处的评论中:https ://developercommunity.visualstudio.com/content/problem/483450/vs-2019-intellisense-reports-compile-errors-when-r.html
0 - 右键单击解决方案并清理解决方案
1 - 关闭 VS
2 - 删除项目的 .suo 文件
3 - 打开VS
4 - 构建解决方案
我的一个同事今天遇到了这个问题。我们在这里尝试了许多建议,但除了下面描述的解决方案外,没有一个有效。
项目构建良好,但 Intellisense 无法识别某些类型并将特定using
语句标记为无效。
将“解决方案平台”(在 VS 2017 中,这是解决方案配置下拉列表旁边的下拉列表,具有 x86、x64、AnyCPU、混合平台等值)为AnyCPU。
您的项目的平台可能会有所不同,但似乎某些参考可能不适用于所有平台。
对于我的具体情况,它是另一个开发人员合并到主分支的服务引用。除了语法高亮无法解析生成的服务类和源代码都带有红色下划线之外,这非常好。清洁,重建,重新启动什么也没做。
我所要做的就是刷新服务参考,VS 设法在幕后将各个部分组合在一起。源代码或生成的文件没有变化。
在恢复将文件添加回我的项目的 git 提交后,我刚刚遇到了这个问题。
即使我在每个步骤之间关闭了 VS,清理和重建项目也不起作用。
最终起作用的是,将文件重命名为其他名称并再次将其更改回来。:facepalm:
在尝试了所有列出的选项后,我发现了另一个原因。如果有人以 zip 格式向您发送源代码,或者您下载了 zip,则 Windows 可能已阻止所有文件。解决此问题的2种方法:
方法一:
右键单击原始 Zip 文件 -> 选中“取消阻止”-> 单击应用
方法二:
如果这不是一个选项,而不是打开解决方案文件夹中每个文件的属性,只需打开 power shell 并使用以下命令递归地解除阻塞:
Get-ChildItem -Path 'C:\<ROOT FOLDER OF SOLUTION>\' -Recurse | Unblock-File
希望能解决你的问题
在工作中遇到了这个问题(运行 VS2017)。在这里尝试了所有答案。没有喜悦。
该项目将构建得很好,但抱怨找不到命名空间/类型。到处都是红色的波浪线。错误列表窗口中有很多错误。
我的解决方案包含 3 个项目。
发现其中一个项目的 3 个 NuGet 库引用不符合要求。合并了引用的库版本和 Bingo。
希望这可以帮助某人。
布雷特。
卸载并重新加载项目解决了这个问题。
我已经在这个问题上苦苦挣扎了一年多,但这些解决方案都没有帮助我:
我终于解决了这个问题——我在记事本中打开了 vbproj/csproj 文件,并注意到在ItemGroup部分中,有一个对我的主项目 dll 的引用。我删除了这个引用,重新打开了我的解决方案,问题就解决了。
有时,如果您只是清理解决方案,错误就会消失,但它们最终可能会在一段时间后或在下一次构建时再次出现。
遇到此问题,Visual Studio 无法识别单一类型,即使解决方案构建成功,也会显示红色曲线。我注意到在解决方案资源管理器中,该文件没有左侧的展开箭头,该箭头显示展开时的类和属性。
修复是从项目中排除文件并保存/构建产生预期错误的文件,然后将文件包含在项目中并保存并构建。
执行这些步骤后,Visual Studio 开始再次识别我的类型。查看 git 中的差异,问题似乎是由于<Compile Include="..." />
我的 .csproj 文件行的行尾不匹配。
在我的情况下,vs 从未在项目属性> 引用中保留导入的命名空间
当我尝试再次添加/检查它们时,我不能并且 vs 抛出一个错误,并且当保存的项目 vs 崩溃时。当我重新打开所有标准导入的命名空间(system.data 等...)时,它们都再次被勾选,然后它可以识别所有内容而没有错误
TL;DR:执行 Visual Studio 的全新安装
浪费了几个小时后,我仍然无法为 Visual Studio 2017 修复它。然后我安装了 Visual Studio 2019 PREVIEW,突然间,IntelliSense 再次向我显示了 STL 类的成员(Visual Studio 2017 没有)。
所以,我的猜测是,Visual Studio 本身也可能有问题(可能是缓存目录中的某些内容,或者通常是您 PC 上与特定解决方案没有直接关系的某些内容),这可以通过干净完整的重新解决- 安装 Visual Studio。我知道,这是一个愚蠢的“解决方案”,但就我而言,只有全新的 Visual Studio (2019) 安装才有效果。
如前所述,在我的例子中,只有 STL 类受到影响。IntelliSense 不会显示他们的成员,这很奇怪。我想,它可能与预编译的头文件有关。在某处我读到 STL 和项目应该在同一个驱动器上,并将它们放在同一个驱动器上应该可以解决问题。但这些路线都没有成功。
我发现如果引用的项目针对的框架版本高于尝试使用它的项目,则可能会发生这种情况。您可以通过转到输出窗口并查找与此类似的内容来判断这是否是问题:
无法解析主要参考“my_reference”,因为它是针对“.NETFramework,Version=v4.7.2”框架构建的。这是比当前目标框架“.NETFramework,Version=v4.7”更高的版本。
解决方案是更改其中一个或其他项目的目标框架。
删除SUO /隐藏解决方案文件有很多答案。
就我而言,这是因为我需要以管理员身份运行 Visual Studio 才能发布。它覆盖了具有管理员权限的那些文件。现在,当以标准用户身份运行时,我无法摆脱任何错误。
如果我以管理员模式重新运行,我能够解决所有错误。
在我的情况下,当我在将 sdk 更新到最新版本后第一次尝试使用 C# 9.0 编写的项目时,无论我做什么,它都会显示红线(它会构建得很好)。我在这里尝试了一切,但没有任何效果。最后我意识到问题出在我的 Resharper 旧版本的语法荧光笔上。一旦我更新了 Resharper,所有的红色都消失了。
我遇到了 IntelliSense 显示不存在的令人分心的错误,但仍然能够在 Visual Studio 2019 中构建和调试项目。Visual Studio 2017 中没有出现此问题。除此之外,我们无法导航到各种参考在 Visual Studio 中。
在尝试了所有发布的选项并找到有关导航符号的帖子后:https ://stackoverflow.com/a/49100341/999011
我们的情况的解决方案与上面帖子中提到的项目文件中的Microsoft.Net.Compilers
&
引用有关。Microsoft.CodeDom.Providers.DotNetCompilerPlatform
但是,我从未更新它们,我只是发现项目文件中有多个对不同版本的引用。在清理完这些并且每个包只有一个引用Microsoft.Net.Compilers
&
Microsoft.CodeDom.Providers.DotNetCompilerPlatform
之后,分散注意力的红色曲线消失了,导航符号开始工作。
我只能推测在升级过程中添加了额外的引用,因为我认为这个项目最初是在 Visual Studio 2015 中创建的。
尝试将鼠标悬停在带下划线的元素上。它通常应该告诉你什么问题。要查看所有错误/警告的列表,请转到查看 => 错误列表。应该在 IDE 底部打开一个表,其中列出了所有错误/警告。
我通过删除 Microsoft .NET 框架的临时文件解决了这个问题。位置:C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files 和 C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files
REM DELETE ALL VS HIDDEN SOLUTION OPTION FILES
DEL /A:H /S *.SUO