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

Seb*_*ebi 27 c++ windows visual-studio-2010 visual-studio-2008

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

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

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

小智 46

在 Visual Studio 2022 中,打开工具 -> 选项 -> [在搜索框中输入“数据库”] -> 文本编辑器 -> C/C++ -> 高级 -> 重新创建数据库 = TRUE,然后重新打开解决方案。 在此输入图像描述

  • 这在 Visual Studio 2019 中也有效。 (7认同)
  • 这只会重新创建数据库一次。重新加载解决方案后,重新创建数据库选项将恢复为 false。这太完美了,谢谢帕维尔! (2认同)

Con*_*tin 23

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

删除sdf文件为我解决了问题.

有时使用大型解决方案(主要是C++项目)变得难以忍受.要解决此问题,您需要关闭解决方案并删除.SDF文件.之后它会再次恢复正常,大约一周左右,直到你需要再次进行.

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

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

  • 在VS2015和2017下,它现在在与解决方案相同的文件夹中创建.vs文件夹.这是包含智能感知的文件夹.删除它可以解决问题. (22认同)
  • 我第二次删除`.vs`文件夹.这有时也是IntelliSense PCH问题的解决方案,但要注意 - 您将丢失窗口布局配置等. (6认同)
  • 不删除其中的 .suo 文件会保留布局。也就是说,我们可能不完全知道 .vs 目录中的哪些文件用于 Intellisense(尽管可能是 .db 文件),但我们确实知道 .suo 用于每个用户解决方案特定的选项。 (3认同)

小智 11

右键单击该解决方案,然后按“重新扫描解决方案”。这似乎对我有用。 突出显示操作的菜单屏幕截图


Goo*_*ies 7

在VS2017中,当CPP端发生某些更改时,当我使用interop从C#调用CPP时,我经常会遇到这种情况。例如,构造函数参数。

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


Aid*_*dan 7

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

这样您就可以重建 Intellisense 缓存而不会丢失您的首选项。


And*_*ham 6

我正在使用 Visual Studio 2019,并且还遇到了 Intellisense 以及其他功能的问题。在 Intellisense 停止与代码格式化一起工作之前,我将能够对文件进行大约 2 或 3 次更新。

我能够重新开始工作的唯一方法是重新启动 Visual Studio,我尝试删除智能感知文件夹和整个.vs文件夹,但这并没有解决问题,它有所帮助,但其他事情正在发生。

我终于能够通过关闭下面的Track changes选项来解决这个问题

Tools->Options->Text Editor->General.

在此处输入图片说明

  • **跟踪更改:** 选择代码编辑器时,选择边距中会出现一条垂直的黄线,以标记自最近保存文件以来已更改的代码。保存更改后,垂直线变为绿色。 (3认同)

E. *_*alt 6

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

  • 附录:为了验证此解决方案,我从 RecycleBin 恢复了 .dtbcache 以及 Intellisense 未跟踪返回的更改的所有问题。 (2认同)