我在C#解决方案中使用Visual Studio时遇到了问题。它会显示完全随机的错误,但项目构建正常。现在,我有33个文件显示错误,并且所有这些文件都有红色波浪线。
我尝试过清理/重建解决方案、关闭Visual Studio甚至重新启动计算机。我可以修改.cs文件并在解决方案中看到更改。
有人知道为什么会出现这种情况吗?
我在C#解决方案中使用Visual Studio时遇到了问题。它会显示完全随机的错误,但项目构建正常。现在,我有33个文件显示错误,并且所有这些文件都有红色波浪线。
我尝试过清理/重建解决方案、关闭Visual Studio甚至重新启动计算机。我可以修改.cs文件并在解决方案中看到更改。
有人知道为什么会出现这种情况吗?
然后禁用并重新启用ReSharper:在菜单中,选择 ReSharper > Options > Environment > General > Clear Caches
在菜单中,选择 Tools > Options > ReSharper > General > Suspend / Restore
清除Resharper缓存在我的情况下没有帮助,尝试了暂停/恢复,还修复了Resharper,使用JetBrains网站上的最新下载 - 这些都没有帮助。这是在我尝试关闭/重新打开VS、重启我的机器、重复、构建/重建和各种组合之后。
有趣的是,在第二次重启VS之后,暂停Resharper似乎解决了问题,但启用Resharper后问题又出现了 <-- 我尝试了2-3次这个序列以确保模式。
无论如何,在我发现这篇文章之前,我仍然存在问题:
所以我删除了与解决方案相同级别的文件夹中的隐藏的.SUO文件,神奇地解决了所有问题。
注意 - 对于Visual Studio 2015,.SUO文件位于.vs/[solution_name]/v14隐藏文件夹中。
简而言之: 卸载并重新加载出现问题的项目。
当我遇到这种情况时,我(过去)会尝试关闭 VS 并重新打开它。这样做可能有一半的成功率。如果不起作用,我会关闭解决方案,删除 .suo 文件(或整个 .vs 文件夹)并重新打开解决方案。到目前为止,这种方法在我身上始终有效(在过去6个月中超过10次),但是有点繁琐,因为一些设置将被重置,例如您的构建模式、启动项目等。
由于通常只有一个项目出现问题,我尝试卸载该项目并重新加载它,这个方法有效。我的样本量仅为1,但比其他两个选项快得多,所以也许值得尝试。(更新:我的一些同事现在也尝试了这种方法,迄今为止它每次都能正常工作。)我认为这种方法有效是因为它会写入 .suo 文件,也许可以修复导致问题的损坏部分。
注意:此方法适用于 VS 2022、2019、2017 和 2015。
我清理了解决方案,关闭了VS,重新打开它,构建解决方案,未解决的行已被清理,构建成功。
我发现在使用Visual Studio 2017中Git时,切换依赖代码更改的分支时经常会发生这种情况。尽管项目能够成功构建,但是会在错误列表中仍然存在错误。
这些错误通常是命名空间问题和缺少引用,即使库引用存在。
解决方法:
我已经尝试了所有6个选项,但都没有解决我的问题。以下解决方案解决了我的问题。
关闭VS。 删除解决方案文件旁边的隐藏“.vs”文件夹。 重新启动VS并加载解决方案。
如@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\ 你的解决方案名称 \v15\ .suo
我曾经遇到过类似的问题,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}
即可解决问题,而无需处理每个引用项目。
有很多因素可能会导致这个问题,正如在这里列出的答案列表所示。以下是我尝试了几乎所有其他方法后最终解决它的方法。
以DEBUG模式构建您的解决方案。然后以RELEASE模式构建它(当它有红色波浪线时不应该构建,但在我的情况下,它只是警告应该有绿色波浪线,但它搞混了并给它们红色波浪线,即使在发布模式下也会构建)。然后再次以DEBUG模式构建。额外的动作包括吐口水并转三圈。
对我有效,当其他方法都无效时。