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

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

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


当前回答

我的一个同事今天就遇到了这个问题。我们尝试了这里的许多建议,除了下面描述的解决方案之外,没有一个有效。

问题:

项目构建良好,但智能感知无法识别某些类型,并将特定的使用语句标记为无效。

解决方案:

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

项目的平台可能会有所不同,但有些参考可能并不适用于所有平台。

其他回答

有时,如果你只是清理解决方案,错误正在消失,但他们最终可能会回来一段时间后或在下一次构建。

以下是一些流行的答案。如果答案对你有帮助,给它点赞:

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

正如@Mike Fuchs提到的,尝试以下操作:

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

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

选项2:清除,关闭,重新启动和构建(@像素选项)

正如@Pixel提到的,尝试以下操作序列:

清洗溶液 关闭Visual Studio Open Visual Studio 构建解决方案

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

如果你有ReSharper,试着清空ReSharper缓存:

在菜单中,ReSharper > Options > Environment > General > Clear cache

和禁用和重新启用ReSharper:

在菜单中,工具>选项> ReSharper > General > Suspend / Restore

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

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

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

对于Visual Studio 2017:

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

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

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

正如@TTT提到的,尝试卸载导致问题的项目:

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

然后重新载入

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

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

正如@Guilherme所提到的,尝试删除并添加“微软”的引用。从存在问题的项目中。

在“解决方案资源管理器”中展开项目,展开“引用”,右键单击“微软”。CSharp”和Remove。 然后,右键单击引用>添加引用,选择“微软。单击“确定”

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

有趣的是,在VS第二次重启后,暂停Resharper似乎解决了问题,但在我启用Resharper <之后,问题又回来了——我尝试这样做2-3次以确保模式。

不管怎样,当我发现这篇文章时,我仍然有问题:

快速提示:当Visual Studio崩溃,所有东西都是红色时该怎么办

所以我删除了同一文件夹级别的。suo文件和解决方案,它神奇地解决了所有红色。

注意:对于Visual Studio 2015, . suo文件在.vs/[solution_name]/v14隐藏文件夹中。

如果你有ReSharper,试着清空ReSharper缓存:

在菜单中,ReSharper > Options > Environment > General > Clear cache

和禁用和重新启用ReSharper:

在菜单中,工具>选项> ReSharper > General > Suspend / Restore

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

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

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