即使项目生成,Visual Studio也会显示错误


265

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

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

有谁知道为什么要这么做吗?


3
您是否安装了ReSharper或其他类似的插件?它们也会引起红色的波浪线。
user1908061 2013年

3
尝试从每个项目中删除bin和obj文件夹。
查理·布朗

错误或警告?如果项目建立,则意味着这些是警告。禁用所有插件,然后看看它如何进行。
Ehsan

在VS 2013 RC候选版本中,我们的两台计算机存在相同的问题。虽然没有安装任何Resharper。这里的难题是,即使构建时没有任何问题,也无法发挥智能感知功能,因为它无法“解析”命名空间和对象。真奇怪。可以在其他5台计算机上完美运行。
Ryk 2013年

Team Foundation Server中未解决的冲突也可能是此问题的根源。获取最新版本可能会报告它已成功并且所有文件都已更新,但这并不总是正确的。如果转到“团队资源管理器”>“待处理的更改”>“操作”下拉菜单>“解决冲突”,然后单击“获取所有冲突”,它应该显示出是否有任何需要解决的未解决的冲突。
user231096714年

Answers:


325

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

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

并禁用和重新启用ReSharper:

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


182

在我的情况下,清除Resharper的缓存无济于事,尝试使用JetBrains网站上的最新下载进行暂停/还原,还尝试修复Resharper,但这些都不起作用。这是在我尝试关闭/重新打开VS,重启机器,重复,构建/重建及其组合之后。

有趣的是,挂起Resharper似乎可以解决VS 的第二次重启后的问题,但是在启用Resharper <-后我又回来了,我尝试执行此序列2-3次以确保模式。

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

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

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


7
Resharper的步骤对我也不起作用,但确实如此。谢谢!
贾斯汀·摩根

4
重新启动Visual Studio之后,您的解决方案已为我修复。谢谢!:)
Moulde 2015年

1
VS2015-我什至有一个项目无法构建,但是我可以从错误中看出它应该有的。我不必关闭VS。刚关闭解决方案,删除.suo,然后重新打开解决方案。问题解决了。
TTT

5
仍适用于VS2019,谢谢!那里的.suo文件位于.vs / [solution_name] / v16。
Michael Armes

3
VS2019,我删除了.vs目录,在下一个版本中重新创建了它-虚假错误消失了。
罗伦·佩希特尔

92

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

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

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

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


7
我只是尝试卸载该项目并重新加载它,然后它起作用了。 ”我感觉自己是对一个货运狂热者的贡献,但是我最终进行了加载和卸载(中间进行了随机清理和构建),最终获得了金奖。太奇怪了。这是
VS2017。– ruffin

2
@ruffin-呵呵。我认为这个问题的每一个答案都是“货运邪教”,但是我相信我是最快,最少介入的人。;)
TTT

1
删除整个.vs文件夹后,在ReSharper的VS 2017社区中为我做到了
Pedro MartinsTimóteoda Costa

3
卸载和重新加载在VS 2019 CE中也对我
有用

1
删除.vs文件夹在VS 2019中对我有用,没有ReSharper,仅是普通VS. 谢谢!!!
德国拉托雷

39

我清理了解决方案,关闭了VS,重新打开它,生成了解决方案,然后清理了红色的未解决的行并成功建立了。


2
遵循这些步骤对我确实有效。仅仅清洁和建造对我不起作用。
JasonCoder

2
关闭它,然后再次打开...您认为我现在已经可以尝试一下。+1
iandisme '16

这样就解决了问题!但是最初是什么原因造成的呢?
DiligentKarma 2016年

2
我不知道。我发现Visual Studio是我使用过的最不稳定的IDE。它一直挂着,经常崩溃,并且偶尔显示出奇怪的错误。老实说,我已经不再数这些问题了。
像素

遵循这些确切步骤并不能解决我的问题(在VS2015中)。
蒂姆(Tim)

29

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

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

解决:

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

感谢您的提示。它为我们解决了VS 2017的问题(无任何更新)。FWIW,这是在删除并检出已在远程重新建立基础的分支后发生的。
Mike Atkisson

1
尽管此解决方案不能解决我的问题,但我确实认为,在我切换具有未提交的更改的分支之后,这个问题就开始了(因为我需要将它们应用于另一个分支)
CularBytes

这正是我的问题。谢谢您的救星
Dinh Tran

@CularBytes可能值得在切换分支之前存储更改。git stash,switch分支,git stash pop
Rebecca

18

我已经尝试了所有6种选择,但对我没有任何帮助。下面的解决方案解决了我的问题。

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


似乎有这个问题的新原因,这是此问题的新解决方案。我知道还有3个人在您发布此消息的几天后也突然遇到了这个问题。
Gerrie Pretorius

不得不做和莫希一样的事。从VS 2019运行时,似乎不是.suo文件。有人会想到他们现在已经解决了此问题... *
grumble grumble grumble

对我来说,在vs2017中也分叉
Nejc Galof

1
@MikeLoux查看Neolisk的回答,您会看到他指出.suo文件现在位于.vs文件夹中,因此您所需要做的就是删除该文件,而不是整个文件夹。这也不是特别令人满意!
阿夫罗洪·伊斯洛尔

Avrohom-最后一点完美地总结了出来。不,一点都不令人满意。而且,是的,我相信我最终确实在您和Neolisk指出的地方找到了该文件,并做了几次重复发生(谢天谢地,它的出现频率不高)。所以...那是我想的。:-)
Mike Loux

12

我遇到了这样一个问题,即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}解决的问题,而不必执行每个引用项目。


即使这是一个nuget程序包,这对我还是有用的。我确保路径在.csproj文件中保持相对(实际上在TFS DIFF中没有任何更改),但这使VS2017 STFU遇到了不存在的错误。
BrainSlugs83 '18

1
我只需要重新添加一个项目参考,然后刷新所有问题参考
robaudas

没有其他解决方案对我有用,这个解决方案可以解决问题:)
Pablo CarrascoHernández'19

12

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

选项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”,然后单击“确定”。


选项6做到了。必须单击@Guilherme链接以投票,因为(现在?)在另一个问题中。
gbarry

以上都不对我
有用

10

删除隐藏的文件路径= 您的解决方案 \ .vs \ 您的解决方案名称 \ v15 \ .suo


1
也为我工作。VS2019。WPF项目始终显示有关控件的错误,但尚可。
Flemming Bonde Kentved


5

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

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

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


4

以下解决方案为我工作

1-关闭VS

2-删除.vs文件夹

3-打开VS

4-构建解决方案


3

也许您尝试重置智能感知缓存。在带有多个局部类定义的大型项目中工作时,在Visual Studio 2012中遇到了类似的问题。减少部分内容可以部分解决问题,同时清除智能感知缓存。


3

有时,我必须通过浏览所有项目并手动删除“ bin”和“ obj”文件夹来进行自定义清理。要在Visual Studio中查看它们,您必须为每个项目启用隐藏的文件和文件夹。完成此操作后,重新生成解决方案。


3

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

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


2

0-右键单击解决方案并清洁解决方案

1-关闭VS

2-删除项目的.suo文件

3-打开VS

4-构建解决方案


2

我的一位同事今天遇到了这个问题。我们在这里尝试了许多建议,但除了以下描述的解决方案外,其他建议均无效。

问题:

项目构建良好,但是Intellisense无法识别某些类型并将特定using语句标记为无效。

解:

更改“解决方案平台”(在VS 2017中,这是“解决方案配置”下拉菜单旁边的下拉菜单,并具有x86,x64,AnyCPU,混合平台等值)到AnyCPU

您的项目的平台可能会有所不同,但似乎某些引用可能不适用于所有平台。


1

对于我的特定情况,这是一个服务引用,另一个开发人员合并到主分支中。除了语法高亮无法解析生成的服务类并且源都用红色下划线标出之外,这一切都很好。清洁,重建,重新启动无济于事。

我要做的就是刷新服务参考,而VS设法将所有内容整合在一起。源代码或生成的文件未更改。


1

在还原将文件添加回我的项目的git commit之后,我刚刚遇到了这个问题。

即使我在每个步骤之间都关闭了VS,也无法清理和重建项目。

最终有效的方法是将文件重命名为其他文件,然后再次将其更改。:facepalm:


1

在尝试了所有列出的选项之后,我发现了发生这种情况的另一个原因。如果有人将您的源代码作为zip发送给您,或者您下载了zip,则Windows可能已阻止了所有文件。解决此问题的2种方法:

方法1:

右键单击原始Zip文件->选中“取消阻止”->单击应用

方法2:

如果这不是一种选择,则无需打开解决方案文件夹中每个文件的属性,只需打开power shell并使用以下命令递归解除阻止:

Get-ChildItem -Path 'C:\<ROOT FOLDER OF SOLUTION>\' -Recurse | Unblock-File

1
  1. 首先关闭解决方案。
  2. 然后删除解决方案缓存文件(位于位置C:\ Users \ Documents \ Visual Studio \ Backup Files /项目缓存文件中)
  3. 然后.suo文件删除
  4. 然后打开解决方案并进行构建。

希望能解决您的问题


1

在工作中有此问题(运行VS2017)。在这里尝试了所有答案。不开心

该项目将构建良好,但抱怨找不到名称空间/类型。到处都是红色的花招。错误列表窗口中有很多错误。

我的解决方案包含3个项目。

发现其中一个项目的3个NuGet库引用不符合要求。合并了参考的库版本和Bingo。

希望这对某人有帮助。

布雷特



0

有时,如果您只是清洁解决方案,这些错误就会消失,但是最终可能会在一段时间后或在下次构建时再次出现。


0

遇到此问题时,即使解决方案成功构建,Visual Studio也无法识别单个类型,该类型显示红色花样。我注意到在解决方案资源管理器中,该文件的左侧没有展开箭头,该箭头显示了展开时的类和属性。

解决方法是从项目中排除文件并保存/构建,这会产生预期的错误,然后将文件包含在项目中并保存并构建。

执行完这些步骤后,Visual Studio开始再次识别我的类型。查看git中的差异,看来问题出<Compile Include="..." />在我的.csproj文件的行尾不匹配。


0

就我而言,vs从未在项目属性>引用中保留导入的名称空间

当我尝试再次添加/检查它们时,我无法和vs抛出错误,并且保存的项目vs崩溃了。当我重新打开所有标准导入的名称空间(system.data等)时,它们都再次被打勾,然后它可以识别所有内容而没有错误


0

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和项目应该在同一驱动器上,将它们放在相同的驱动器上应该可以解决问题。但是这些途径都没有成功。


0

我发现,如果所引用的项目针对的框架版本比尝试使用该框架的项目更高,则可能会发生这种情况。您可以通过转到输出窗口并查找与此类似的内容来判断是否是问题所在:

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

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


0

我在VS2019中的症状是我会在构建时出现一些错误。然后,我将修复错误,然后构建将正常工作,如“输出”窗口中所示。但是“错误”窗口仍显示旧错误。我可以很好地运行它。关闭VS2019并反击已解决了该问题,但仅持续了一段时间。这开始发生在版本16.4.3

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

取消选中工具->选项->项目和解决方案->常规->允许并行项目初始化

我发现此修复程序在以下评论中被深埋:https : //developercommunity.visualstudio.com/content/problem/483450/vs-2019-intellisense-reports-compile-errors-when-r.html


-1

尝试将鼠标悬停在带下划线的元素上。它通常应该告诉您什么问题。要查看所有错误/警告的列表,请转到查看=>错误列表。应该在IDE的底部打开一个表格,列出所有错误/警告。


随机类下有弯曲的线,但是我在错误列表中没有得到任何错误。此外,项目建设完美。看起来与Intellisense有关。
GammaOmega
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.