Visual studio Visual Studio 2015或2017显示IntelliSense错误,但解决方案已编译

Visual studio Visual Studio 2015或2017显示IntelliSense错误,但解决方案已编译,visual-studio,intellisense,visual-studio-2015,Visual Studio,Intellisense,Visual Studio 2015,我们目前正在评估新的Visual Studio 2015,但遇到了IntelliSense的一个奇怪问题。当我用新的studio编译我们的主解决方案时,构建成功了,但是仍然显示了6个错误 我发现这不是一个真正的错误,只是一个智能感知错误。代码绝对正确,所有内容都编译成功。但是,代码被标记为红色,错误显示在错误列表中 所有6个错误都有相同的来源。这是一个简单的构造函数调用。很奇怪,但是也有一些完全相同的构造函数出现,没有任何错误 错误消息: Code: CS1729 Message: '<t

我们目前正在评估新的Visual Studio 2015,但遇到了IntelliSense的一个奇怪问题。当我用新的studio编译我们的主解决方案时,构建成功了,但是仍然显示了6个错误

我发现这不是一个真正的错误,只是一个智能感知错误。代码绝对正确,所有内容都编译成功。但是,代码被标记为红色,错误显示在错误列表中

所有6个错误都有相同的来源。这是一个简单的构造函数调用。很奇怪,但是也有一些完全相同的构造函数出现,没有任何错误

错误消息:

Code: CS1729
Message: '<the class>' does not contain a constructor that takes that many arguments.
Project: <the project name>
File: <the path to the file>
代码:CS1729
消息“”不包含接受那么多参数的构造函数。
项目:
文件:
新的studio安装在新安装的Windows7上,没有任何遗留软件(没有VS13)

我已经尝试过清除缓存、删除suo文件、删除bin和obj目录、清理和重建解决方案等,但都没有效果


有人能向我解释一下这种行为吗?

迁移的项目也有这个问题,所以我引用了Microsoft.CSharp dll。在一些项目中,我需要删除并再次添加项目中的引用。

也有这个问题(标题,而不是具体的错误消息),以及编辑器中的曲线。第一个扭曲的行位于第一个
#include
语句下面,该语句命名了一个预编译头。Intellisense未能包含预编译头,但未将其列为错误;相反,它会在文件的后面列出错误,这些错误(非常正确地)依赖于预编译头中的声明

Intellisense在我的环境中找不到预编译头的原因是名为的头不是实际文件。只要正确配置了预编译头设置,它就不必出现在我使用的任何其他VC或gcc版本中,也不必出现在2015编译器中。显然,对于Intellisense来说已经没有了。我不完全确定2013年的情况是否有所不同,也许我从来没有注意到

在这里报告的问题不太可能出现的情况下,解决方案很简单:按照
#include
指令中的规定,使用预编译头的假名称创建一个小文件,并让该文件包含预编译头的实际名称


如果你想知道。。。为什么“#include”语句中的预编译头名称与预编译头的实际文件名之间存在这种区别?正是因为它保证了预编译头设置的正确配置。在“包含”预编译头的地方,没有可以包含的文件。读取实际头的实际预编译(二进制)版本,或者编译失败。显然,它的一个缺点是,它会让阅读代码的人感到困惑,而不仅仅是Intellisense。

我有数千个Intellisense错误和0个构建错误。删除
.suo
文件并重新启动VS intellisense后,错误消失

Suo
文件相对于源位于:
.vs\SolutionName\v14\.suo

根据评论:注意
*.suo
是一个隐藏文件


编辑:根据评论,VS2017存在相同的问题,因此您可以使用类似的解决方案:删除。
vs\SolutionName\v15\.suo

今天我在MSVC++2015上遇到了类似的问题。我几乎放弃了,决定在没有IDE提示的情况下继续,但突然我注意到我遇到问题的项目的stdafx.h不包含任何标准库头。我推测在stdafx.h中包含项目中使用的所有标准头可能会提高编译速度,但这样做也会修复Intellisense错误。

在Visual Studio 2017 ASP.Net核心项目中遇到类似问题。下面的步骤对我起了作用

  • 执行清洁解决方案
  • 接近VS
  • Delete.suo文件&删除bin/obj目录
  • 重新打开VS

  • 我在其他Include目录中有多个
    stdfax.h
    。确保您想要的
    stdafx.h
    位于路径的第一位。

    与其他问题类似,但解决方案不同。以防我能帮助其他人

    运行Visual Studio 2017 15.5.2。我使用Git并经常切换分支。几周前,我开始让编辑器向我显示错误(所有错误都与它无法找到的类型相关,即使引用是有效的)。我工作得很好。我在VS 2017 15.6预览版(2018年1月6日)中确认了相同的问题。我会尝试删除缓存、SUO文件或bin/obj文件夹,但不会产生任何影响。起初,它似乎起了作用。重新打开VisualStudio,一切看起来都会很好。使用“重建解决方案”,IntelliSense错误将返回。我甚至尝试卸载/重新安装Visual Studio

    我在两台机器上遇到了相同的问题,都使用了相同版本的VisualStudio

    通过查看有关缺少类型的错误,它们似乎都来自两个引用的项目。其中一个引用是一个共享项目,解决方案中几乎所有其他项目都使用它,但其中一个是一个没有很多引用的小项目。碰巧我的大型共享项目也引用了这个小项目。在VisualStudio中,我卸载了这个小项目并重新加载了它。错误消失了!他们的错误并没有在重建解决方案中恢复

    然后我切换了Git分支,所有的错误都回来了。幸运的是,我重复了上述卸载/重新加载小项目的步骤,错误消失了


    每次我切换Git分支时,错误都会回来,直到我重复这个过程。对于我卸载/重新加载的较小项目,Git分支之间没有任何更改。不清楚为什么那个序列会解决我的问题。

    我在dif上也遇到了类似的问题