刷新Visual Studio中的自动完成(IntelliSense)数据库

时间:2013-08-17 14:38:47

标签: c++ windows visual-studio-2010 visual-studio-2008

我注意到,Visual Studio中的自动完成功能在我的项目达到一定大小后不再正常工作(在我的情况下约为4,100行代码)。我还注意到,一旦第三方库的数量增加(名称空间和类属性和方法不再可见),性能也会降低。

有没有办法手动更新自动完成数据库或为现有项目创建新数据库?

我目前正在Visual Studio 2008下工作,但我也在Visual Studio 2010中遇到过这个问题。

6 个答案:

答案 0 :(得分:11)

对于VS2015和2017,请关闭Visual Studio并删除与解决方案相同的文件夹中的.vs文件夹。它包含intellisense数据库(如果我们知道哪些文件,应该可以只删除特定于intellisense的文件)。请注意,如果删除整个文件夹,则会丢失窗口布局配置等。

对于以前的版本,请关闭Visual Studio并导航到项目文件夹。 * .sdf文件包含intellisense数据库 - 如果删除此文件并在visual studio中重新打开项目,它将重建缓存。

删除sdf文件解决了我的问题。

  

有时候使用大解决方案(主要是C ++项目)会变成   难以忍受的慢。要修复它,你需要关闭解决方案然后去   删除.SDF文件。之后它又恢复正常了   一个星期左右,直到你需要再做一次。

     

根本原因是SDF文件碎片化,   根据我所做的xperf剖析,VS有时会做20,000以上   在调试和发布之间进行更改时随机读取。把   SSD上的SDF文件可以解决问题,但不一定非必要。   VS需要更有效地使用SDF文件,而不是阻止SDF   操作,永远。

来源:https://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2255455-fix-the-delete-sdf-file-problem

答案 1 :(得分:5)

在VS2017中,当我使用互操作来从C#调用CPP时,我常常遇到这种情况,当CPP端发生变化时...构造函数参数。

在解决方案中卸载并重新加载CPP项目有助于解决红线问题。

答案 2 :(得分:1)

在验证了 daniol 3 月 15 日的结果后,我进入了 .vs 文件夹 -> {MyProject} 文件夹 -> DesignTimeBuild 文件夹并删除了 .dbtcache 文件,Intellisense 现在可以“智能地”工作而不会丢失 Window Layout 或其他 .索信息。我怀疑 eq_ 在 1 月 4 日提供的“Diagnostics.DTBBLog”命令做了同样的事情,但该命令似乎不再可用,至少在那个名称中是这样。

答案 3 :(得分:0)

对于Visual Studio 2017(我想也是Visual Studio 2019),请关闭Visual Studio,进入项目文件夹中的.vs文件夹,删除除.suo文件之外的所有内容,然后重新打开Visual Studio。

通过这种方式,您可以重建Intellisense缓存而不会丢失首选项。

答案 4 :(得分:0)

我正在使用Visual Studio 2019,并且在使用Intellisense以及其他功能时也遇到了问题。在Intellisense停止使用代码格式化之前,我将能够通过大约2或3个文件更新。

我能使事情再次正常运行的唯一方法是重新启动Visual Studio,我尝试同时删除了intellisense文件夹和整个.vs文件夹,但这并不能解决问题,但有帮助在继续。

我终于可以通过关闭

下的Track changes选项来解决此问题

Tools->Options->Text Editor->General

enter image description here

答案 5 :(得分:-1)

对于 Visual Studio 2017(并且主要使用 C# 项目),以下一直对我有用:

  • 打开命令窗口(查看/其他窗口/命令窗口)[Ctrl+W,A]
  • 输入命令“Diagnostics.DTBBLog”并按回车

无需关闭解决方案并重新加载等。 发现在 Visual Studio 2019 中删除了此命令是毁灭性的...