Обновление базы данных с автозаполнением (IntelliSense) в Visual Studio

Я заметил, что функция автоматического завершения в Visual Studio перестает работать должным образом, как только мой проект достиг определенного размера (в моем случае ~ 4 100 строк кода). Я также заметил, что производительность также ухудшается после увеличения количества сторонних библиотек (пространства имен, атрибуты и методы класса больше не видны).

Есть ли способ вручную обновить базу данных автоматического завершения или создать новую для существующего проекта?

В настоящее время я работаю в Visual Studio 2008, но я столкнулся с этой проблемой в Visual Studio 2010.

Ответ 1

Для VS2015, 2017 и VS2019 закройте Visual Studio и удалите папку .vs в той же папке, что и решение. Среди прочего, он содержит базу данных intellisense (должна быть возможность удалить только файлы, относящиеся к intellisense, если мы знали, какие из них). Обратите внимание, что если вы удалите всю папку, вы потеряете настройки конфигурации окна и т.д.

Для предыдущих версий закройте Visual Studio и перейдите в папку вашего проекта. Файл *.sdf содержит intellisense database-, если вы удалите эти файлы и повторно откроете свой проект в 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

Ответ 2

В VS2017 я часто сталкиваюсь с этой ситуацией, когда я использую interop для вызова CPP из С#, когда что-то меняется на стороне CPP. аргументы конструктора.

Выгрузить и перезагрузить проект CPP в решении помогает решить красные линии.

Ответ 3

Для Visual Studio 2017 (и я думаю, что также Visual Studio 2019) закройте Visual Studio, перейдите в папку .vs в папке проектов и удалите все содержимое, кроме файла .suo, затем снова откройте Visual Studio.

Таким образом, вы можете перестроить кэш Intellisense, не теряя своих предпочтений.

Ответ 4

Я использую Visual Studio 2019, а также испытываю проблемы с Intellisense наряду с другими функциями. Я смог бы пройти через 2-3 обновления файла, прежде чем Intellisense перестал работать вместе с форматированием кода.

Единственный способ заставить все работать снова - это перезапустить Visual Studio, я попытался удалить и папку intellisense, и всю папку .vs но это не решило проблему, помогло, но что-то еще происходило.

Я наконец смог исправить это, отключив опцию Track changes в

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

enter image description here