首页 文章

即使项目构建,Visual Studio也会显示错误

提问于
浏览
199

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

我尝试清理/重建解决方案,关闭Visual Studio甚至重新启动计算机 . 我还确保执行调试运行中描述的步骤,即使编译器在Visual Studio中有错误也是如此 . 我可以修改.cs文件,我看到解决方案中的变化 .

有没有人知道它为什么这样做?

23 回答

  • 131

    以下解决方案为我工作

    1 - 关闭VS.

    2 - 删除.vs文件夹

    3 - 打开VS.

    4 - 构建解决方案

  • 3

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

    Method 1:

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

    Method 2:

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

    Get-ChildItem -Path 'C:\<ROOT FOLDER OF SOLUTION>\' -Recurse | Unblock-File
    
  • 12
    REM DELETE ALL VS HIDDEN SOLUTION OPTION FILES
    DEL /A:H /S *.SUO
    
  • 1

    这是一系列受欢迎的答案 . 如果它帮助你,请提供答案的OP:

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

    @Mike Fuchs所述,请尝试以下操作:

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

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

    Refresh Button

    选项2:清理,关闭,重启和构建(@Pixel选项)

    @Pixel所述,请尝试以下操作序列:

    清理解决方案关闭Visual Studio打开Visual Studio Build解决方案

    选项3:清除ReSharper缓存(我的原始选项)

    如果您有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"的引用 .

    在Solution Explorer中,展开项目,展开“References”,右键单击“Microsoft.CSharp”并删除 . 然后,右键单击“引用”>“添加引用”,从列表中选择“Microsoft.CSharp”,然后单击“确定”

  • -2

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

  • 29

    我通过删除Microsoft .NET框架的临时文件解决了这个问题 . 位置:C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files and C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files

  • 3

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

    有趣的是,暂停Resharper似乎在VS重新启动后解决了问题,但是在我启用Resharper之后它又回来了 - 我试图做2-3次这个序列以确保模式 .

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

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

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

  • -1

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

  • 1

    我发现在Visual Studio 2017中使用Git时经常发生这种情况, switching branches where there is dependent code changes . 即使项目将成功构建,错误列表中仍会存在错误 .

    这些错误通常是名称空间问题和缺少引用,即使存在库引用也是如此 .

    解决:

    • 关闭Visual Studio

    • 删除 .vs \ SlnName \ v15.suo文件(隐藏)

    • 重新启动Visual Studio

  • 284

    我有一个问题像这样,Intellisense似乎没有认识到一个项目的存在(很多“找不到这种类型”,“这个命名空间不存在”等错误) .

    在所有引用项目中删除和重新添加项目引用将解决问题,但可以通过编辑问题项目的.proj文件来修复根本原因 .

    在“缺失”项目的顶部附近.csproj文件是一个元素:

    <ProjectGuid>{GUID}</ProjectGuid>
    

    在所有引用项目中.csproj文件都是项目引用:

    <ProjectReference Include="..\OffendingProject\OffendingProject.csproj">
      <Project>{ANOTHER-GUID}</Project>
      <Name>Offending Project</Name>
    </ProjectReference>
    

    引用GUID没有't match the project'的GUID . 用 {ANOTHER-GUID} 替换上面的 {GUID} 修复了问题,而无需经历每个引用项目 .

  • 2

    我已经尝试了所有6个选项,没有任何对我有用 . 以下解决方案解决了我的问

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

  • 32

    也许您尝试重置智能感知缓存 . 我在visual studio 2012中遇到过类似的问题,当时他们在一个有很多部分类定义的大型项目中工作 . 减少局部问题部分地解决了问题,也清除了智能感知缓存 - 一段时间 .

  • 1

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

    清理和重建项目不起作用,即使我在每个步骤之间关闭VS.

    最终起作用的是将文件重命名为其他内容并将其重新更改 . :捂脸:

  • 0
    • 首先关闭解决方案 .

    • 然后解压缩缓存文件删除(位置C:\ Users \ Documents \ Visual Studio \ Backup Files / project cache file)

    • 然后.suo文件删除

    • 然后解决方案打开并构建 .

    我希望解决你的问题

  • -2

    TL;DR: 执行干净的Visual Studio重新安装

    在浪费了几个小时后,我仍然无法修复Visual Studio 2017.然后我安装了Visual Studio 2019预览,突然之间,IntelliSense再次向我显示了STL类的成员(它与Visual Studio 2017不同) .

    因此,我的猜测是,Visual Studio本身可能也有问题(可能是缓存目录中的某些内容,或者通常是PC上与某个特定解决方案没有直接关系的内容),这可以通过干净完整的解决方案来解决 . - 安装Visual Studio . 我知道,这是一个愚蠢的“解决方案”,但就我而言,只有一个新的Visual Studio(2019)安装才有效 .

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

  • 1

    有时,如果您只是清理解决方案,错误就会消失,但它们可能会在最近一段时间或下一次构建时返回 .

  • 0

    对于我的具体情况,它是另一个开发人员合并到主分支的服务引用 . 除非语法高亮无法解析生成的服务类,并且源全部用红色下划线,否则完全正常 . 清洁,重建,重新启动什么也没做 .

    我所要做的只是刷新服务参考,VS设法将各个部分组合在一起 . 源代码或生成的文件没有变化 .

  • 0

    尽管解决方案构建成功,但Visual Studio无法识别单一类型,显示红色波形 . 我注意到在解决方案资源管理器中,文件左侧没有展开箭头,展示了扩展时的类和属性 .

    解决方法是从项目中排除文件并保存/生成产生预期错误的文件,然后将该文件包含在项目中并保存并生成 .

    执行这些步骤后,Visual Studio再次开始识别我的类型 . 看看git中的diff,看来问题是由于我的.csproj文件的 <Compile Include="..." /> 行上的行结尾不匹配 .

  • 0

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

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

    由于它通常只是一个有问题的项目,我只是尝试卸载该项目并重新加载它,这很有效 . 我的样本量只有1,但它比其他两个选项快得多,所以也许值得尝试 . 我怀疑这是有效的,因为它写入.suo文件,并且可能修复了导致问题开始的损坏的部分 .

    注意:我正在使用Visual Studio 2015 .

  • 0

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

  • 9

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

    当我试图再次添加/检查它们时,我无法和vs抛出错误,当保存项目与崩溃时 . 当我重新打开所有标准导入的命名空间(system.data等...)时,所有这些都被重新勾选,然后它会识别所有内容而不会出现错误

  • 2

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

  • 0

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

    1 - 关闭VS.

    2 - 删除项目的.suo文件

    3 - 打开VS.

    4 - 构建解决方案

相关问题