即使项目构建,Visual Studio也会显示错误

Gam*_*ega 251 c# resharper intellisense syntax-error visual-studio

我在C#解决方案上遇到Visual Studio问题.它显示完全随机的错误,但项目构建.现在,我有33个文件有错误,我可以在所有文件中看到红色的波浪线.

我尝试清理/重建解决方案,关闭Visual Studio甚至重新启动计算机.我还确保执行调试运行中描述的步骤,即使编译器在Visual Studio中有错误也是如此.我可以修改.cs文件,我看到解决方案中的变化.

有没有人知道它为什么这样做?

Gam*_*ega 314

如果您有ReSharper,请尝试清空ReSharper缓存:

在菜单中,ReSharper>选项>环境>常规>清除缓存

并禁用和重新启用ReSharper:

在菜单中,工具>选项> ReSharper>常规>暂停/恢复


Neo*_*isk 168

清除Resharper的缓存在我的情况下没有帮助,尝试暂停/恢复,还有修复Resharper,使用JetBrains网站上的最新下载 - 这些都没有帮助.这是在我尝试关闭/重新打开VS,重启我的机器,重复,构建/重建及其组合之后.

有趣的是,暂停Resharper似乎在第二次重新启动VS 后解决了问题,但是在我启用Resharper之后它又回来了 - 我试图做这个序列2-3次以确保模式.

无论如何,当我发现这篇文章时,我仍然遇到问题:

所以我用解决方案删除同一文件夹级别的隐藏.SUO文件,它神奇地解决了所有红色问题.

注 - 对于Visual Studio 2015,.SUO文件位于.vs/[solution_name]/v14隐藏文件夹中.

  • Resharper步骤对我来说也不起作用,但是这样做了.谢谢! (6认同)
  • 在重新启动visual studio之后,您的解决方案为我修复了它.谢谢!:) (4认同)
  • 仍适用于VS2019,谢谢!那里的.suo文件位于**。vs / [solution_name] / v16。** (3认同)
  • VS2019,我删除了.vs目录,在下一个版本中重新创建了它-虚假错误消失了。 (2认同)

TTT*_*TTT 72

tldr; 卸载并重新加载问题项目.

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

由于它通常只是一个有问题的项目,我只是尝试卸载该项目并重新加载它,这很有效.我的样本量只有1,但它比其他两个选项快得多,所以也许值得尝试.我怀疑这是有效的,因为它写入.suo文件,并且可能修复了导致问题开始的损坏的部分.

注意:这似乎适用于VS 2017和2015.

  • 在VS 2017中删除.suo文件对我有用. (7认同)
  • "*我只是尝试卸载该项目并重新加载它,这很有效.*"我觉得我正在为货物崇拜做出贡献,但我最终装载和卸载(随机清理和构建之间),并最终被击中金.太奇怪了.这是VS 2017. (6认同)
  • 卸载和重新加载在VS 2019 CE中也适用于我 (3认同)
  • @ruffin-呵呵。我认为这个问题的每一个答案都是“货运邪教”,但是我相信我的是最快,最不麻烦的。;) (2认同)
  • 删除.vs文件夹在VS 2017上对我有用。 (2认同)
  • 在 VS 2017 Community with ReSharper 中删除整个 .vs 文件夹对我来说是这样 (2认同)

pix*_*xel 35

我清理了解决方案,关闭了VS,重新打开它,构建了解决方案,并清理了红色未解析的行并构建成功.

  • 完全遵循这些步骤对我有用.简单的清洁和建造对我来说不起作用. (2认同)
  • 关闭它,然后再重新打开。。。您认为我现在应该尝试一下。+1 (2认同)
  • 我不知道。我发现Visual Studio是我使用过的最不稳定的IDE。它一直挂着,经常崩溃,并且偶尔显示出奇怪的错误。老实说,我已经不再数这些问题了。 (2认同)

Reb*_*cca 23

我发现在Visual Studio 2017中使用Git时经常会发生这种情况,在有依赖代码更改的地方切换分支.即使项目将成功构建,错误列表中仍会存在错误.

这些错误通常是命名空间问题和缺少引用,即使存在库引用也是如此.

解决:

  • 关闭Visual Studio
  • 删除{sln-root} .vs\SlnName\v15.suo文件(隐藏)
  • 重新启动Visual Studio

  • 虽然这个解决方案没有解决我的问题,但我确实认为这个问题是在我用未提交的更改切换分支之后开始的(因为我需要将它们应用到另一个分支) (2认同)

小智 15

我已经尝试了所有6个选项,对我没用.以下解决方案解决了我的问

关闭VS. 删除解决方案文件旁边隐藏的".vs"文件夹.重新启动VS并加载解决方案.

  • @MikeLoux 看看 Neolisk 的答案,你会发现他指出 .suo 文件现在位于 .vs 文件夹中,所以你需要做的就是删除该一个文件,而不是整个文件夹。这也不是特别令人满意! (2认同)

Phi*_*p C 11

我有一个像这样的问题,其中Intellisense似乎没有认识到一个项目的存在(很多"找不到这种类型","这个命名空间不存在"等错误).

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

在"缺失"项目的顶部附近.csproj文件是一个元素:

<ProjectGuid>{GUID}</ProjectGuid>
Run Code Online (Sandbox Code Playgroud)

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

<ProjectReference Include="..\OffendingProject\OffendingProject.csproj">
  <Project>{ANOTHER-GUID}</Project>
  <Name>Offending Project</Name>
</ProjectReference>
Run Code Online (Sandbox Code Playgroud)

引用GUID与项目的GUID不匹配.更换{GUID}上面{ANOTHER-GUID}解决了问题而无需经过每个引用项目.


小智 10

Delete the hidden file path = your solution\ .vs\ your solution Name \v15\ .suo


Jin*_*lye 10

可能导致这种情况的因素有很多,正如这里一长串的答案所证明的那样。这是为我解决这个问题的方法,首先尝试了几乎所有其他方法。

在调试模式下构建您的解决方案。然后以 RELEASE 模式构建它(当它有红色波浪线时,它不应该构建,但在我的情况下,这只是警告,应该有绿色波浪线,但它陷入了混乱并给了他们红色波浪线,并且它无论如何构建,即使在发布模式下也是如此)。然后在DEBUG模式下构建。吐口水在手上,转身三遍可选。

为我工作,当没有其他事做的时候。


Rom*_*lla 5

对于VS-2017,删除.vs文件夹对我有用。


小智 5

以下解决方案对我有用

1 - 关闭VS

2 - 删除 .vs 文件夹

3 - 打开VS

4 - 构建解决方案


Gam*_*ega 5

这是一些受欢迎的答案。如果对您有帮助,请对答案的操作进行投票:

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

@Mike Fuchs所述,请尝试以下操作:

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

在菜单中,构建>构建解决方案

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

刷新按钮

选项2:清理,关闭,重新启动和构建(@Pixel选项)

@Pixel所述,请尝试以下操作顺序:

  1. 清洁溶液
  2. 关闭Visual Studio
  3. 打开Visual Studio
  4. 建立解决方案

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

如果您有ReSharper,请尝试清空ReSharper缓存:

在菜单中,ReSharper>选项>环境>常规>清除缓存

并禁用和重新启用ReSharper:

在菜单中,工具>选项> ReSharper>常规>挂起/还原

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

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

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

对于Visual Studio 2017:

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

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

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

@TTT所述,请尝试卸载导致问题的项目:

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

并重新加载

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

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

正如@Guilherme所述,请尝试从有问题的项目中删除并添加对“ Microsoft.CSharp”的引用。

在解决方案资源管理器中,展开项目,展开“参考”,右键单击“ Microsoft.CSharp”并删除。

然后,右键单击“引用”>“添加引用”,从列表中选择“ Microsoft.CSharp”,然后单击“确定”。


Eri*_*rik 5

我注意到有时切换git分支时,Visual Studio(2017)不会从第二个分支中添加的某些文件中识别类型。删除.vs文件夹即可解决该问题,但同时也浪费了您所有的工作区设置。这个技巧对我来说似乎很有效:

  1. 解决方案资源管理器->查找其中包含无法识别的类的文件。
  2. 单击解决方案资源管理器顶部的“显示所有文件”。
  3. 右键单击文件->从项目中排除。
  4. 再次右键单击文件->包含在项目中。

这将导致Intellisense解析切换分支时丢失的文件。


小智 5

删除.vs文件夹解决了我的问题。

但它也会重置我的解决方案在 VS 中的当前设置。就像,当我重新启动 VS 时,我在解决方案中卸载的项目被重新加载,所有固定和打开的文档也被关闭。