visual-studio - Visual Studio 显示智能感知错误,但解决方案编译

  显示原文与译文双语对照的内容

我们正在评估新的Visual Studio 2015,并遇到了智能感知的一个奇怪问题。 当我用新的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>



新的studio安装在新安装的Windows 7上,没有任何遗留软件( 无 VS13 ) 。

我已经试图清除缓存,删除了,已经删除的bin和obj目录,清理并重新生成解决方案 等等 。

谁能向我解释这种行为?

时间: 原作者:

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

我有数千个od智能感知错误和 0个编译错误。 删除. suo 文件后,重新启动 vs intellisense错误。

Suo文件相对于源文件位于: vssolutionnamev14.邮编

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

编辑:根据注释,VS2017有同样的问题,因此你可以使用类似的解决方案: 删除。vssolutionnamev15.邮编

在 Visual Studio 2017 ASP.NET 核心项目中遇到类似问题。 下面的步骤为我做了

  • 执行清洁解决方案
  • 关闭 vs
  • 删除. suo 文件&删除 bin/obj目录
  • 重新打开 vs
原作者:

也有这个问题( 标题,而不是特定的错误信息) 以及编辑器中的曲线。 第一个弯曲行位于第一个 #include 语句下,该语句命名预编译头。 in无法包含预编译头,但不列出错误,而是将错误列在文件中,( 非常合理) 依赖于预编译头。

is在我的环境中找不到预编译头的原因是名称不是实际的文件。 不必在我使用的任何它的他VC或者gcc版本中,也不必在 2015编译器中正确配置。 显然,对于智能感知来说。 我不完全确定它在 2013中是不同的也许我根本没注意到。

在这种情况下,这可能是报告的问题,解决方案很简单: 按照 #include 指令中指定的预编译头的别名创建一个小文件,并让该文件包含预编译头的实际 NAME 。

如果你想知道。"。"。为什么预编译头 NAME 在'#include'语句和预编译头的实际文件名之间区别? 正是因为它保证了预编译头设置正确配置。 预编译头是"#included"时,就不存在可以包含的文件。 实际头文件的预编译( 二进制) 版本被读取,或者编译失败。 显然,一个缺点是,它使人们难以阅读代码,而不仅仅是智能代码。

原作者:

类似的问题,但不同的分辨率。 为了帮助别人而发帖。

运行 Visual Studio 2017 15.5.2我使用Git和常用 switch 分支。 几周前我开始编辑演示错误( 所有与类型相关的类型,尽管引用是有效的) 。 编译工作很好。我在 vs 2017 15.6预览( Jan 6,2018 ) 中确认了同样的问题。 我将尝试删除缓存。SUO文件或者 bin/obj文件夹,但不会影响。 起初它似乎工作起来。 重新打开 Visual Studio,一切都会很好。 使用"重建解决方案"和智能感知错误将返回。 我甚至尝试卸载/重新安装 Visual Studio 。

我在两台机器上都有同样的问题,两台机器都有相同的版本。

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

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

每次 switch 分支,错误都会返回,直到重复这个过程。 对于小型项目的Git分支,我在卸载/重新加载的过程中,。 为什么该序列正在修复我的问题。

原作者:

今天我与 MSVC++ 2015有类似的问题。 我几乎放弃并决定没有IDE提示,但偶尔我注意到我遇到的子项目的stdafx.h 不包含任何标准的库头。 我建议它可以能会降低模块编译的速度,但是包含标准的标头在固定的,中也。

我在其他包含目录中有多个 stdfax.h 。 确保你想要的stdafx.h 首先在你的路径中。

...