Visual Studio C#智能感知未自动显示

60

最近,我的Visual Studio 2010在我打字时停止自动显示智能感知建议。虽然我仍然可以按Ctrl+空格键使其工作,但它不会像以前那样自动显示建议列表。我已经尝试禁用所有扩展程序,重新启动VS和电脑,并检查了所有适当的设置(选项->文本编辑器->C#->智能感知),以确保设置为在输入一个字符后提供建议。

有人以前见过这种行为吗?还有其他建议吗,让我可以将智能感知恢复到之前的状态?如果没有,我可能只能重新安装VS了...

17个回答

124

enter image description here


如果您无法看到上面的图像,请按照以下说明操作:

打开 "工具" > "选项" > "文本编辑器"。如果您只在一个语言中遇到了这个问题,请查找该语言;如果是针对所有语言,请点击 "所有语言"。在顶部,会有几个标有 "自动列出成员"、"隐藏高级成员" 和 "参数信息" 的选项。请确保所有这些选项都已启用(尽管第二个选项可能被禁用;如果是这样,请忽略它)。


8
同样的修复方法适用于2013版本。 我认为ReSharper对我进行了更改。 - David
将TypeScript工具包添加到可能更改这些设置列表中。 - Kyle
1
我的ReSharper试用许可证过期的同一天,我也遇到了这个问题。 - Eduardo Wada
事实上,ReSharper为了实现自己的功能而阻止了VS内置功能的一些操作,这可能会干扰其他插件,例如:https://dev59.com/JIrda4cB1Zd3GeqPLmJM - Eduardo Wada
链接的图片似乎已经不存在了,因此答案为空。有什么解决办法吗? - DaRich
显示剩余2条评论

16

我发现有时即使在“选项”-->“语句完成”下验证设置(如上面的答案)也无效。 在这种情况下,保存并重新启动Visual Studio将重新启用Intellisense。

最后,此链接列出了按语言分类的其他故障排除方法(针对更具体的错误)。

http://msdn.microsoft.com/en-us/library/vstudio/ecfczya1(v=vs.100).aspx


8
我要注意的是,自从我升级了内存以来,这种情况就没有发生过。 我曾经有多个VS实例和SSMS打开。 我已经升级到8GB,然后是16GB。
当我失去智能感应时,我会按照以下步骤进行操作:
如果只有一个文件/窗口受影响,请关闭/重新打开该文件。 如果不起作用,请尝试以下操作。
在Visual Studio中:
1.单击“工具”->“选项”->“文本编辑器”->“所有语言”->“常规” 2.取消选中“自动列出成员” 3.取消选中“参数信息” 4.选中“自动列出成员”(是的,您刚才取消了选择) 5.选中“参数信息”(同样,您刚才取消了选择) 6.单击确定
如果这不起作用,则可以尝试以下几个步骤:
1.关闭所有VS文档并重新打开 2.如果仍然不起作用,请关闭/重新打开解决方案 3.如果仍然不起作用,请重新启动VS。
对于C++项目:
MSDN有一些可尝试的方法:MSDN建议 损坏的.ncb文件似乎最有可能。
来自MSDN:
1.关闭解决方案。 2.删除.ncb文件。 3.重新打开解决方案。(这将创建一个新的.ncb文件。)
注意:
此问题似乎不特定于C#,因为C++和VB用户报告了相同的问题
在VS 2013/2015中测试过

1
重启 VS 对我没有用,但在设置中取消选中并重新选中复选框确实有用。谢谢! - tamj0rd2
工作了。谢谢。 - undefined

3

删除解决方案文件夹中的.suo文件以解决问题。


3
我也遇到了同样的问题,但是在VS2013中。
我按照以下方法进行修复,它可以正常工作。
1. 关闭所有已打开的Visual Studio实例。 2. 然后,从Visual Studio工具中进入“开发人员命令提示符”。 3. 输入devenv.exe /resetuserdata 4. 重启计算机,打开Visual Studio,然后它会要求您从一开始选择开发设置,之后打开任何解决方案/项目。你会感到惊讶。
希望能对你有所帮助 :)

3
这绝对是“一刀切”的方法。它会将所有内容重置,包括 msdn/产品密钥等,就像重新安装一样。虽然这种方法确实解决了其他方法无法解决的问题,但建议其他人在使用此解决方案时要小心。 - HeatherD

3

修复的步骤如下:

      Tools
      Import and Export Settings
      Reset all settings
      Back up your config
      Select your environment settings and finish

1
我今天在执行以下操作后遇到了这个问题:
  1. 向我的项目添加了一个新类。
  2. 关闭了Visual Studio,但不小心选择了“否”,当它询问是否要保存更改时。
  3. 重新打开Visual Studio,发现它自动重新打开了新文件,但没有我的先前更改(正如预期的那样)。然而,在新文件中IntelliSense不再起作用。
问题是除了没有保存新文件的更改外,它还没有保存项目的更改,因此在重新打开Visual Studio后,该文件不再是项目的一部分。在“解决方案资源管理器”中使用“显示所有文件”命令,或使用“添加→现有项...”命令可以解决该问题。

1

我将该文件从项目中排除,因此无法对其进行调试和智能感知。 将该文件重新包含到项目中解决了我的问题!:)


1
有时候我发现智能感知(Intellisense)很慢。尝试输入"."并等待一分钟,看看是否会在延迟后出现。如果是这样的话,我相信可能存在一个缓存可以被删除以重新扫描。

我不认为是那个问题。我可以按下ctrl+space或ctrl+j,结果会立即出现。我想我只是要重新安装一下。 - Drewmate
你确定点号(.)被列入触发它的字符列表中了吗? - Erik Funkenbusch
它确实是这样,但更重要的是,它曾经在仅输入一个字符时为本地变量名称提供建议,但现在也不再这样做了。 - Drewmate
2
@Drewmate - 你之前安装过任何提供额外智能感知的东西吗,比如Resharper或Code Rush? - Erik Funkenbusch

1
在 .net core 时代,一个新的原因是加载了一个不支持的 .net core 版本的项目。例如,如果您从 GitHub 加载了一个设置为使用以下版本的项目:
  <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
    <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
  </PropertyGroup>

但是如果你只安装了2.1版本或者使用的是Visual Studio 2017,那么编译器将无法找到SDK代码并提供智能感知。在这种情况下的解决方案可能是右键单击项目,从上下文菜单中选择“编辑MyProject.csproj”,然后根据需要更改目标框架。
  <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
  </PropertyGroup>

这意味着你所加载的项目可以在较低的目标框架下运行。

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