为什么在打开Visual Studio时智能感知和代码建议停止工作?

166

我一直在使用微软Visual Studio 2012时遇到智能感知的问题。我会在项目中编写代码等操作(有时5分钟至一个多小时),然后突然之间,就没有代码建议或者智能感知了。两者似乎完全同时停止工作。

我尝试过的唯一解决方法是重置所有设置,彻底关闭 Visual Studio,然后重新打开项目。是否有更好的解决方案或更新可以解决这个问题呢?


3
请限制标签只使用必要的。"Microsoft" 并不是必要的,因为没有其他人制作 Visual Studio 或拥有 vb.net。"application-settings" 似乎是关于保存/读取您正在编写的应用程序的设置,而不是您正在使用的 IDE。您可能还想编辑您的问题,并将其分成易于阅读的段落;您发布的文字墙很难阅读,使问题更易于阅读,您得到帮助的机会就越大 :-) - Ken White
3
抱歉,这仅仅是因为当本应该工作的事情无缘无故地失败时,我会变得非常激动。 - Josh Menzel
1
+1. 我在VS 2010中也遇到过同样的问题。通常重启VS就可以解决。无需重置设置。这种情况很少发生,所以对我来说从未成为大问题。 - Victor Zakharov
我注意到在我卸载了 ReSharper 之后,这种情况开始发生(在那之前我从未使用过没有 ReSharper 的 VS)。 - Matej
刚开始使用 VS2015 的发布版。Intellisense一开始运行正常,后来我退出了调试会话,它就停止了。即使使用了Tony L的答案也没有起作用。我只是关闭并重新打开了VS,它又恢复正常工作了。 - Ricky
显示剩余7条评论
31个回答

336

我应该注意到自从升级了RAM以来,我就没有遇到这个问题。我无法确认它是否有关,但当我只有2-4GB RAM时,这个问题很常见。自从我升级到8和16GB后就没有出现过问题。

如果只有一个文件或窗口受到影响,请关闭并重新打开该文件。如果这样不起作用,请尝试以下步骤。

在Visual Studio中:

  1. 点击工具->选项->文本编辑器->所有语言->常规
  2. 取消选中“自动列出成员”
  3. 取消选中“参数信息”
  4. 选中“自动列出成员”(是的,刚才你取消了它)
  5. 选中“参数信息”(同样,刚才你取消了它)
  6. 点击确定

如果这样不起作用,还有几个步骤可尝试:

  1. 关闭所有VS文档并重新打开
  2. 如果仍然不起作用,请关闭/重新打开解决方案
  3. 如果仍然不起作用,请重启VS。

对于C++项目:
MSDN有一些要尝试的方法: MSDN建议

可能是损坏的.ncb文件。

来自MSDN:

  1. 关闭解决方案。
  2. 删除.ncb文件。
  3. 重新打开解决方案。(这将创建一个新的.ncb文件。)

注:

  • 在VS 2013/2015中测试过

记录可能的原因:

  • 在源页面中复制/粘贴控件。我发现我的designer.vb文件也没有更新。
  • 从另一个页面复制粘贴代码,导致错误,因为所复制的代码引用了未在我要粘贴的页面上的控件。
  • C++ 项目有损坏的 .ncb 文件。
  • (如果您注意到导致此问题的行为,请添加到评论中。)


    13
    不得不重新启动VS。 - Jonathan Brown
    2
    对我来说,重新启动 VS 并没有关闭和打开那个文件的效果。非常感谢! - MKesper
    1
    工具-> 位元也适用于VS2015 Ultimate Update 2,无需重新启动。如果我能给这个答案+1^6,我就会犹豫不决地转移到Eclipse >;-) 话虽如此,微软的某个人应该因为这个错误在全球范围内造成的低效率而受到割礼。 - smirkingman
    4
    对我有用的是勾选/取消勾选,关闭所有窗口并重新启动。 - Marvin Effing
    1
    步骤1-6在我的VS 2017中有效。我认为这是由于禁用resharper或者resharper许可证过期所导致的。它不会将VS默认设置恢复到原始状态。请参考此答案获取更多详细信息:https://dev59.com/Wmoy5IYBdhLWcg3wo_gn#8420870 - goku_da_master
    显示剩余17条评论

    39

    对我而言有效的方法是删除在隐藏的.vs目录中与解决方案文件路径相同的位置动态构建的.suo文件(Solution User Options)

    这个问题有时会反复出现,且发生在不同的项目/解决方案中,但从未发生在VS范围内。新项目总是能够正常工作。

    正在运行VS2015 Professional Update -2-


    这个解决方案对我很有效!Microsoft Visual Studio Professional 2015 Version 14.0.25431.01 Update 3。非常感谢。 - AndreaT
    不要遵循这个建议。我的项目配置都消失了(包括目录、定义等)。VS2017 - hacksoi

    15

    我遇到了同样的问题,Intellisense会在某些文件中停止显示但在其他文件中却正常。这种情况刚刚又发生给我了,按 Ctrl + SpaceForm1 中无法显示任何内容,但是切换到 Form2 或其他任何类都能正常弹出列表。重新启动Visual Studio通常可以解决问题,但这个基本功能出现故障真的太烦人和荒唐了...


    我不知道为什么,但是Ctrl + Space解决了我的问题。 - Сергей

    14

    我找到了一个对我百分之百有效的解决方案(我没有安装 ReSharper)。在“解决方案资源管理器”中按下 刷新 按钮即可恢复 IntelliSense。


    1
    这在我的VS2017中可以工作,我不知道是否安装了ReSharper。(我认为这涵盖了所有可能的情况。) - Codes with Hammer

    11

    我花了很多时间研究相同的问题。有些解决方案将此错误与一些引用程序集相关联。另一些人说项目的引用中应该包括Microsoft.Windows.Design.Extension.dll.Interactivity.dll。但是,这些解决方案都没有对我起作用。

    我认为这是Visual Studio 2012中的一个错误,微软必须修复它。


    3
    我有 Visual Studio 2013,并且这个问题仍然存在。这仍然是一个 bug 吗? - Zein Sleiman
    1
    是的,没错。不幸的是,在过去几年中,似乎每个迭代版本的VS都变得越来越慢和更多错误了。 - PaulK
    38
    这不应该被视为正确答案。下面的Tony L的回答是正确的。 - Scott R. Frost
    9
    仍然在使用VS2015时遇到这个问题。 - Wouter
    2
    在VS 2019中仍然发生这种情况。不得不不断重启才能让基本功能继续工作,真是太糟糕了。 - Tundey
    显示剩余5条评论

    11

    我的解决方法是先禁用再启用Resharper

    进入
    工具 -> 选项-> Resharper ->常规

    点击
    暂停 -> 这会禁用Resharper

    然后检查你的Intellisense是否工作。 在我的情况下,它可以,然后我恢复Resharper

    如果这样做不起作用,你可能需要进入
    Resharper -> 选项-> 环境 -> Intellisense -> 常规

    并且更改Intellisense为Visual Studio


    6

    对于我来说,所有这些步骤都没有起作用。奇怪的是,我注意到Intellisense对于Visual Studio 2015中的另一个解决方案有效,但对于特定解决方案无效。

    我找到并删除了.suo文件,然后重新启动了Visual Studio。这解决了我的问题。


    2

    我在使用Visual Studio 2010的C++时也遇到了同样的问题,但我通过以下步骤解决了它:工具 -> 选项 -> 文本编辑器 -> C/C++ -> 高级 -> 禁用数据库 -> 设为False,点击确定;关闭VS;重新打开VS,问题解决。


    你在重启VS之前测试过它吗?我想知道仅仅重启是否解决了问题。 - Tony L.
    1
    起初,在 VS 重新启动之前进行了一次测试,但没有成功。我改变了那个选项几次,然后重新启动了 VS,在重新启动之后,它的行为根据最后一次更改发生了变化。因此,我推断这些效果会在 VS 重新启动后生效。 - GreatDane

    2

    使用Visual Studio > 2015,我删除了.suo文件。(通过文件浏览器在项目中搜索)

    重新启动Visual Studio,你就可以开始工作了。


    4
    为了在VS 2017和2019上修复我的项目,我删除了其中的.vs文件夹。 - Chesare

    2

    我在使用 Visual Studio 2015 + C# 时遇到了这个问题。

    过了一会儿,我通过以下方式解决了这个问题:

    1)前往:工具 -> 选项 -> 文本编辑器 -> C#

    2)勾选这些选项“自动列出成员”和“启用虚拟空间”。

    可能有一些扩展,比如R#,禁用这些选项以使用它们的工具。


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