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

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

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


当前回答

在我的例子中,帮助了很多事情:

deleting all old not needed files which were previously excluded from the project closing VS deleting all the bin folder contents deleting .vs folder Clean/Rebuild after that I still had some spurious errors, however the amount was significantly lower (from 200 to around 8) and the errors referred only to a resource dictionary path in Generic.xaml e.g. <ResourceDicitonary Source="example/path/somefile.xaml"> when I played around with the path trying to change it to a wrong one re-building then correcting it and rebuilding again, then this finally cleared all errors. It was specifically WPF project if that's relevant.

其他回答

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

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

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

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

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

修复是排除该文件从项目和保存/构建产生一个预期的错误,然后包括该文件在项目和保存和构建。

执行这些步骤后,Visual Studio开始再次识别我的类型。看看git中的差异,这个问题似乎是由于<Compile Include="…"的行结束符不匹配造成的。.csproj文件的/>行。

对于我的具体案例,它是另一个开发人员合并到主分支中的服务引用。除了语法高亮显示无法解析生成的服务类和源都是红色下划线之外,这是完全正常的。清理、重建、重新启动什么都没有。

我所要做的就是刷新服务引用,而VS设法在幕后将各个部分组合在一起。源代码或生成的文件没有更改。

我已经在这个问题上挣扎了一年多,但这些解决方案都帮不了我:

删除.suo 删除。vs文件夹 删除所有缓存/临时文件夹 删除obj / bin文件夹 卸载/重新加载项目

我终于修复了这个问题-我在记事本中打开vbproj/csproj文件,并注意到在ItemGroup部分中,有一个指向我的主项目dll的引用。我删除了这个参考,重新打开了我的解决方案,问题就解决了。

我体验过智能感知显示不存在的分散注意力的错误,但仍然能够在Visual Studio 2019中构建和调试项目。此问题在Visual Studio 2017中没有出现。在这个问题上,我们无法导航到Visual Studio中的各种参考。

在尝试了所有发布的选项并找到这篇关于导航符号的文章后:https://stackoverflow.com/a/49100341/999011

我们这种情况的解决方案与Microsoft.Net.Compilers & 项目文件中的Microsoft.CodeDom.Providers.DotNetCompilerPlatform引用,在上面的帖子中提到过。

然而,我从来没有更新过它们,我只是发现在项目文件中有多个对不同版本的引用。在清理完这些文件后,每个包只有一个引用 Microsoft.CodeDom.Providers。DotNetCompilerPlatform,分散注意力的红色涂鸦消失了,导航符号开始工作。

我只能推测,额外的引用是在升级期间添加的,因为我认为这个项目最初是在Visual Studio 2015中创建的。