Visual Studio 2012 - 智能感知有时消失/失效

133

我和我的同事已经使用VS2012几周了。有时在工作数小时后,Intellisense突然失效。关闭所有打开的标签后,它就可以正常工作。

是否还有其他人遇到了同样的问题?这不可能是扩展程序的问题,因为我在家里也遇到了同样的问题。也许有一些解决方法?


2
在出现这个问题后,使用 Ctrl + Space 是否有效? - SajjadHashmi
7
没有使用Ctrl+Space没有效果。 - Mohnkuchenzentrale
2
Visual Studio使用独立的IntelliSense实现来支持其所支持的每种语言,因此答案可能取决于正在使用的特定语言。此外,几个Visual Studio扩展程序会更改、增强或甚至完全替换一个或多个语言的IntelliSense功能,这可能会改变此处提供的答案。 - Sam Harwell
请在此用户反馈中投票,要求添加一个软重置快捷键来至少减轻这个问题的影响:https://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/6595642-add-intellisense-reset-option - mattmanser
我遇到了这个问题。我没有安装任何插件到VS或者其他的。只是像平常一样打开和关闭解决方案和文件。所以不知道是什么导致了这样的错误。 - Dzmitry Lahoda
21个回答

184
以下是几种解决 Visual Studio 2012 Intellisense 问题的解决方案,请逐一尝试,希望其中之一可以解决问题:
1:关闭所有选项卡并重新打开文件。(感谢 russds 提供的建议)
2:清除生成(Clean the Build)> 关闭解决方案(Close the Solution)> 重启 Visual Studio > 再次打开解决方案。
3:转到“编辑”> “智能感知”> “刷新本地缓存”。
4:关闭 Visual Studio 2012 并删除此文件夹:%AppData%\Microsoft\VisualStudio\11.0\ReflectedSchemas 5:转到“工具”> “导入和导出设置”> “重置所有设置”。
6:在项目文件夹中删除 .suo 文件。(感谢 Jason Steele 提供的建议)
我希望您可以通过以上六个步骤解决问题。如果这些步骤都无法解决问题,那么我认为您应该考虑重新安装 VS2012。

6
由于在我的VS2012中该菜单项不存在,因此无法执行#1。由于该文件夹不存在,因此无法执行#2。但是重新启动VS2012后问题消失了。 - Lasse Skindstad Ebert
21
在那里我找不到任何刷新本地缓存的选项? - Furkan Gözükara
6
我也遇到了同样的问题,以上方法都没有奏效。但是关闭所有标签页后问题解决了。这应该作为解决方案的第一选项。 - russds
1
4人在VS 2012项目中工作,但在VS 2013中该文件夹不存在,我仍然遇到了同样的问题。我尝试删除类似的GeneratedSchemas文件夹,但也没有起作用。 - Jason Steele
1
@SajjadHashmi,你觉得在你的答案中加入删除.suo文件的步骤怎么样?这个主题中有几条评论和赞同的答案表明了这一点,因此将其列入主要列表中可能会帮助其他人。我今天提出了对这个问题的修改,以包括这一点,但我的修改被拒绝了(原因让我感到困惑和有些泄气)。无论如何,请考虑将这个小小的补充添加到你的答案中。 - pettys
显示剩余10条评论

19

我使用Visual Studio 2012,遇到了相同的问题。当Intellisense不再工作时,解决方法是关闭当前选项卡(其中Intellisense不起作用),然后重新打开它。没有必要关闭Visual Studio或所有选项卡。


2
这对我来说真的很有效。比重新加载整个解决方案或重新启动Visual Studio要好。 - Howard Renollet

13
你不需要重新启动Visual Studio,而是关闭当前解决方案,然后再次打开它。希望有更简单的解决方案。 更新4/16: 对于XAML用户,一个有效的解决方案就是故意破坏你的代码,这应该足以恢复intellisense。 更多信息请看这里
无法验证是否适用于其他类型的代码,但如果适用,请留下评论。

7
不需要关闭当前解决方案,只需点击“窗口”菜单,选择“关闭所有文档”。 - yoyo

13

尝试了各种方法,最终有效的方法是删除SUO文件。这个文件是一个隐藏文件,位于解决方案目录中,名为SolutionName.v11.suo:

  1. 关闭解决方案。
  2. 确保您可以看到隐藏文件。
  3. 删除suo文件。
  4. 重新打开解决方案。

您将失去解决方案的桌面(编辑器中不会自动打开任何文件),但这是为了恢复智能感知而付出的小代价:)


有什么想法为什么会发生这种情况吗?我现在每天要删除3次或更多的sou文件。我还没有确定是哪个插件引起的问题,但我猜测可能是Web Essentials或Power Tools。 - Skowronek
1
@Alon Gingold - 这不就是我在11月13日说的吗?无论如何,我已经安装了Xamarin工具,并想知道是否有其他人也遇到了.suo文件的问题? - Jason Steele
我已经安装了Xamarin,但每天在Visual Studio 2013中都遇到这个问题。 - TombMedia

12

删除 .suo 文件。尝试这样做,在其他方法都失败后,这个方法对我有效。


这让我想起了旧日子,当你必须将 .ncb 文件设置为只读,以便 VS 2005 无法使用它,在处理 C++ 头文件时不会卡住 30 分钟。 - Jon Harbour

6

我有同样的问题。对我来说,选择文件的最后一行末尾,然后保存文件(ctrl-s)可以解决问题。


2
我首先要注意的是,自从我升级了16GB的RAM以来,这种情况就再也没有发生过。
当我复制/粘贴页面上的控件时,似乎会出现这种情况。另一个副作用是,designer.vb文件不会立即更新,我无法在代码后台访问这些控件。
以下是我执行的步骤顺序:
  • 如果只有1个文件/窗口受到影响,请关闭/重新打开该文件。
在Visual Studio中:
  1. 点击工具->选项->文本编辑器->所有语言->常规
  2. 取消选中“自动列出成员”
  3. 取消选中“参数信息”
  4. 选中“自动列出成员”(是的,刚才你取消的那个)
  5. 选中“参数信息”(同样,刚才你取消的那个)
  6. 点击确定
如果这样还不行,可以尝试以下几个步骤:
  1. 如果仍然不起作用,请关闭所有窗口并重新打开
  2. 如果仍然不起作用,请关闭/重新打开解决方案
  3. 如果仍然不起作用,请重启VS。
对于 C++ 项目:
MSDN 有一些建议可以尝试:MSDN suggestions
最可能的原因是损坏的 .ncb 文件。
从 MSDN 中得知:
  1. 关闭解决方案。
  2. 删除 .ncb 文件。
  3. 重新打开解决方案(这将创建一个新的 .ncb 文件)。
(我还没搞清楚为什么在某些情况下需要更加严重的措施。)
  • 已在 VS 2013/15 中测试过。
  • 自从升级 RAM 后,我就没有遇到这个问题了。

1
我在一个项目中遇到了razor智能感知完全不工作的问题。上述修复方法都对我无效。最终,我通过将web config中的webpages版本更改为2.0.0.0而不是下面显示的3.0.0.0来解决了这个问题:
<appSettings>
   <add key="webpages:Version" value="2.0.0.0" />
   ...
</appSettings>

我希望这能帮助其他人。

1
问题出在.vcproj文件上。
如果您从调试模式切换到发布模式,然后构建,并尝试使用智能感知,通常会起作用。
关闭Visual Studio。如果在项目中搜索.vcproj文件,请编辑它们并搜索 AdditionalIncludeDirectories 的前两个实例。这个值应该看起来像".. \,....\"而不是"../.."。
重新打开您的项目,让Intellisense完成构建,然后问题就应该解决了。

重新安装VS后,这个方法解决了我的问题。 - SB2055

1

操作步骤:

  1. 进入“工具”菜单
  2. 点击“导入和导出设置”
  3. 选择“重置所有设置”。点击“下一步”
  4. 备份您的设置。点击“下一步”
  5. 选择您的环境设置(例如,Visual C# 开发设置)。点击“完成”

无需重新启动 Visual Studio。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接