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

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

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


当前回答

在我的情况下,vs从未在项目属性>引用中保留导入的名称空间

当我试图再次添加/检查它们时,我不能和vs抛出一个错误,当保存项目vs崩溃时。当我重新打开所有标准导入的名称空间(system。数据等)都被再次勾选,然后它就能正确识别一切

其他回答

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

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

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

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

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

我刚刚遇到这个问题后,恢复了一个git提交,添加文件回到我的项目。

清理和重建项目没有起作用,即使我在每一步之间关闭VS。

最终起作用的方法是将文件重命名为其他文件,然后再将其更改回来。facepalm指:

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

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

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

在尝试了所有列出的选项后,我发现了另一个原因,为什么会发生这种情况。如果有人以zip文件的形式向你发送源代码,或者你下载了zip文件,Windows可能已经阻止了所有文件。2种解决方法:

方法1:

右键单击原始Zip文件->选中“解除封锁”->单击应用

方法2:

如果这不是一个选项,而不是打开解决方案文件夹中的每个文件的属性,只需打开power shell并使用以下方法递归地解除阻塞:

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