【问题标题】:Visual Studio displaying errors even if projects build即使项目生成,Visual Studio 也会显示错误
【发布时间】:2013-07-16 04:42:08
【问题描述】:

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

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

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

【问题讨论】:

  • 您是否安装了 ReSharper 或任何其他类似的插件?它们也可能导致红色波浪线。
  • 尝试从每个项目中删除 bin 和 obj 文件夹。
  • 错误或警告?如果项目构建,则意味着这些是警告。禁用所有插件,看看效果如何。
  • 我们的 2 台机器在 VS 2013 RC 候选版本上存在同样的问题。虽然没有安装 Resharper。这里的困境是,即使它构建没有问题,智能感知也不会起作用,因为它无法“解析”命名空间和对象。真奇怪。在其他 5 台机器上完美运行。
  • Team Foundation Server 中未解决的冲突也可能是此问题的根源。获取最新版本可能会报告它成功并且所有文件都已更新,但这并不总是正确的。如果您转到 Team Explorer > Pending Changes > Actions 下拉菜单 > Resolve Conflicts 并单击“获取所有冲突”,它应该会显示您是否需要修复任何未解决的冲突。

标签: c# visual-studio syntax-error resharper intellisense


【解决方案1】:

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

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

以及禁用和重新启用 ReSharper:

在菜单中,工具 > 选项 > ReSharper > 常规 > 暂停/恢复

【讨论】:

    【解决方案2】:

    Clearing Resharper's cache 在我的情况下没有帮助,尝试了suspend/restore,还使用 ​​JetBrains 网站上的最新下载修复了 Resharper - 这些都没有帮助。这是在我尝试关闭/重新打开 VS、重新启动机器、重复、构建/重建及其组合之后。

    有趣的是,在 2nd 重启 VS 后暂停 Resharper 似乎可以解决问题,但在我启用 Resharper 后它又回来了

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

    于是我把the hidden .SUO file和解决方案在同一文件夹级别删除了,它神奇地解决了所有的红色问题。

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

    【讨论】:

    • Resharper 步骤对我也不起作用,但确实如此。谢谢!
    • 您的解决方案在重新启动 Visual Studio 后为我修复了它。谢谢! :)
    • VS2015 - 我什至有 1 个项目无法构建,但我可以从错误中看出它应该有。我不必关闭VS。刚刚关闭解决方案,删除 .suo,然后重新打开解决方案。问题解决了。
    • 仍然适用于 VS2019,谢谢! .suo 文件位于 .vs/[solution_name]/v16.
    • VS2019,我删除了 .vs 目录,在下一次构建时重新创建了它——虚假错误消失了。
    【解决方案3】:

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

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

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

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

    【讨论】:

    • "我刚刚尝试卸载该项目并重新加载它,这很有效。" 我觉得我正在为货物崇拜做贡献,但我最终加载和卸载(在两者之间进行随机清理和构建),并最终击中黄金。太奇怪了。这是 VS 2017 的版本。
    • @ruffin - 呵呵。我认为这个问题的每一个答案都是“货物崇拜”,但我相信我的答案是最快和最不打扰的。 ;)
    • 使用 ReSharper 在 VS 2017 社区中为我删除了整个 .vs 文件夹
    • 卸载和重新加载在 VS 2019 CE 中也为我工作
    • 删除 .vs 文件夹在 VS 2019 中为我工作,没有 ReSharper,只是普通的 VS。谢谢!!!
    【解决方案4】:

    我清理了解决方案,关闭了VS,重新打开,构建解决方案,红色未解析的行被清理并构建成功。

    【讨论】:

    • 这些步骤,完全遵循,对我有用。简单的清洁和建造对我来说是行不通的。
    • 把它关掉然后重新打开......你认为我现在就知道试试了。 +1
    • 这解决了问题!但首先是什么原因造成的!?
    • 我不知道。我发现 Visual Studio 是我用过的最不稳定的 IDE。它一直挂起,经常崩溃,并且每隔一段时间就会显示奇怪的错误。老实说,我已经停止计算问题了。
    • 遵循这些确切步骤并没有解决我的问题(在 VS2015 中)。
    【解决方案5】:

    我发现在 Visual Studio 2017 中使用 Git 时经常发生这种情况,切换存在依赖代码更改的分支。即使项目将成功构建,错误列表中仍会存在错误。

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

    解决:

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

    【讨论】:

    • 感谢您的提示。它为我们解决了 VS 2017 的问题(没有任何更新)。 FWIW,这发生在我们删除并签出已在远程重新设置的分支后。
    • 虽然这个解决方案没有解决我的问题,但我确实认为这个问题是在我切换具有未提交更改的分支之后开始的(因为我需要将它们应用到另一个分支)
    • 这正是我的问题。谢谢我的救命恩人
    • @CularBytes 在切换分支之前可能值得存储更改。 git stash,切换分支,git stash pop
    【解决方案6】:

    我已经尝试了所有 6 个选项,但没有一个对我有用。以下解决方案解决了我的问题。

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

    【讨论】:

    • 这个问题似乎有新的原因,这就是这个问题的新解决方案。我知道另外 3 个人也在你发帖的几天内也突然遇到了这个问题。
    • 必须和 Moshi 一样。从 VS 2019 运行时似乎不是 .suo 文件。人们会认为他们现在已经解决了这个问题...*grumble grumble grumble*
    • 对我来说,在 vs2017 中也分叉
    • @MikeLoux 看看 Neolisk 的回答,你会看到他指出 .suo 文件现在在 .vs 文件夹中,所以你需要做的就是删除那个文件,而不是整个文件夹。这也不是特别令人满意!
    • Avrohom - 最后一点完美地总结了它。不,这根本不是很令人满意。而且,是的,我相信我最终确实找到了您和 Neolisk 指出的文件,并且已经这样做了几次(谢天谢地)。所以......那是什么,我猜。 :-)
    【解决方案7】:

    这里是热门答案的集合。如果对您有帮助,请支持答案的 OP:

    选项 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 链接进行投票,因为它(现在?)在另一个问题中。
    • 以上都不适合我,解决方案中有 80 多个项目
    • Resharper 'Clear Cache' 用 C++ 为我做了这件事,谢谢。
    【解决方案8】:

    我遇到过这样的问题,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 关于不存在的错误。
    • 我只需要重新添加一个项目引用,所有问题引用都刷新了
    • 其他解决方案都不适合我,这个解决方案成功了 :)
    【解决方案9】:

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

    【讨论】:

    • 也为我工作。 VS 2019。WPF 项目不断显示有关控件不存在的错误,但运行良好。
    【解决方案10】:

    对于 VS-2017,删除 .vs 文件夹对我有用。

    【讨论】:

      【解决方案11】:

      可能导致它的原因太多了,这里的一长串答案就证明了这一点。这是为我解决的问题,首先尝试了几乎所有其他方法。

      在调试模式下构建您的解决方案。然后在 RELEASE 模式下构建它(当它有红色波浪线时它不应该构建,但在我的情况下,它只是应该有绿色波浪线的警告,但它陷入混乱并给它们红色波浪线,它即使在发布模式下也无论如何构建)。然后在 DEBUG 模式下构建。吐在手上,转三圈可选。

      为我工作,其他什么都没有。

      【讨论】:

      • 哇!这对我也有用,最新版本的 VS2017 v15.9.30 :D 也很简单:) 祝福你@Jinlye
      【解决方案12】:

      我注意到有时在切换 git 分支时,Visual Studio (2017) 无法识别已添加到第二个分支中的某些文件的类型。删除 .vs 文件夹可以解决问题,但也会破坏所有工作区设置。这个技巧似乎对我很有效:

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

      这会导致 Intellisense 解析它在切换分支时错过的文件。

      【讨论】:

        【解决方案13】:

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

        【讨论】:

          【解决方案14】:

          以下解决方案对我有用

          1 - 关闭 VS

          2 - 删除 .vs 文件夹

          3 - 打开 VS

          4 - 构建解决方案

          【讨论】:

            【解决方案15】:

            也许您尝试重置智能感知缓存。在处理具有许多部分类定义的大型项目时,我在 Visual Studio 2012 中遇到了类似的问题。 减少部分部分解决了部分问题,同时也清除了智能感知缓存。

            【讨论】:

            • 您可以像其他答案建议的那样删除 .suo 文件来清除缓存
            【解决方案16】:

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

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

            【讨论】:

              【解决方案17】:

              我在 VS2019 中的症状是构建时会出现一些错误。然后我会修复错误,构建就会工作,如“输出”窗口中所示。但是错误窗口仍然显示旧错误。我可以很好地运行它。关闭 VS2019 并重新打开解决了这个问题,但只是一小会儿。这开始发生在版本 16.4.3

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

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

              我在这里的 cmets 中发现了这个修复:https://developercommunity.visualstudio.com/content/problem/483450/vs-2019-intellisense-reports-compile-errors-when-r.html

              【讨论】:

                【解决方案18】:

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

                1 - 关闭 VS

                2 - 删除项目的 .suo 文件

                3 - 打开 VS

                4 - 构建解决方案

                【讨论】:

                  【解决方案19】:

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

                  问题:

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

                  解决方案:

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

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

                  【讨论】:

                    【解决方案20】:

                    对于我的具体情况,它是另一个开发人员合并到主分支的服务引用。除了语法高亮无法解析生成的服务类并且源代码都带有红色下划线之外,这非常好。清洁,重建,重新启动什么也没做。

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

                    【讨论】:

                      【解决方案21】:

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

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

                      最终奏效的是,将文件重命名为其他名称并再次将其改回。 :facepalm:

                      【讨论】:

                        【解决方案22】:

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

                        方法一:

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

                        方法二:

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

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

                        【讨论】:

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

                          希望能解决你的问题

                          【讨论】:

                            【解决方案24】:

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

                            该项目可以正常构建,但抱怨找不到命名空间/类型。到处都是红色的波浪线。错误列表窗口中有很多错误。

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

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

                            希望这对某人有所帮助。

                            布雷特。

                            【讨论】:

                              【解决方案25】:

                              卸载并重新加载项目解决了这个问题。

                              【讨论】:

                                【解决方案26】:

                                我已经为这个问题苦苦挣扎了一年多,但这些解决方案都没有帮助我:

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

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

                                【讨论】:

                                  【解决方案27】:

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

                                  【讨论】:

                                    【解决方案28】:

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

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

                                    执行这些步骤后,Visual Studio 再次开始识别我的类型。查看 git 中的差异,问题似乎是由于我的 .csproj 文件的 &lt;Compile Include="..." /&gt; 行的行尾不匹配。

                                    【讨论】:

                                      【解决方案29】:

                                      在我的情况下,vs 从未在项目属性中保留导入的命名空间> 参考

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

                                      【讨论】:

                                        【解决方案30】:

                                        TL;DR:重新安装 Visual Studio

                                        浪费了几个小时后,我仍然无法为 Visual Studio 2017 修复它。然后我安装了 Visual Studio 2019 PREVIEW,突然间,IntelliSense 再次向我显示了 STL 类的成员(它没有视觉工作室 2017)。

                                        所以,我的猜测是 Visual Studio 本身也可能有问题(可能是缓存目录中的某些内容,或者通常是您 PC 上与特定解决方案没有直接关系的某些内容),这可以通过清理并完成重新安装 Visual Studio。我知道,这是一个愚蠢的“解决方案”,但就我而言,只有全新的 Visual Studio (2019) 安装才有效果。

                                        如前所述,在我的例子中,只有 STL 类受到影响。 IntelliSense 不会显示他们的成员,这很奇怪。我想,它可能与预编译的头文件有关。在某处我读到 STL 和项目应该在同一个驱动器上,并将它们放在同一个驱动器上应该可以解决问题。但这些路线都没有成功。

                                        【讨论】:

                                          猜你喜欢
                                          • 1970-01-01
                                          • 2020-11-30
                                          • 2012-04-09
                                          • 1970-01-01
                                          • 2016-12-15
                                          • 1970-01-01
                                          • 2021-07-20
                                          • 1970-01-01
                                          • 1970-01-01
                                          相关资源
                                          最近更新 更多