it-roy-ru.com

Что делает база данных Sqlite в папке моего проекта .vs?

Сейчас я заметил это в VS 2017 в консольном приложении Core и стандартном приложении .NET Framework MVC. Он называется <solution-name>.sqlite и имеет следующие таблицы:

FileScannerCache
FileSystemData
FileSystemEntity
FileSystemReference
ProviderEntity
Setting
SymbolDefinition

Кажется, он содержит данные, связанные с MSBuild, но когда я запрашиваю некоторые таблицы, например

select * from FileScannerCache

Я получаю ошибку System.FormatException: String was not recognised as a valid DateTime. Я использую Sqlite/SQL Server Compact Toolbox для проверки и запроса этой базы данных.

18
ProfK

Похоже, этот файл связан с функциональностью «облегченной загрузки решений» (LSL) в VS2017. Если вы отключите LSL в своем решении, удалите файл из каталога и откройте свое решение, и вы увидите, что оно не воссоздано. Однако снова включите LSL для решения и откройте свое решение, вы увидите, что файл создан снова. Я предполагаю, что он используется в качестве формы кеширования информации для включения функциональности LSL. 

Кроме того, вся информация в папке .vs должна быть безопасной для исключения из системы контроля версий.

14
Quintus Marais

Если вы оказались здесь, потому что вы получаете

 Git failed with a fatal error.
 error: open(".vs/Onion/v15/Server/sqlite3/db.lock"): Permission denied
 fatal: Unable to process path .vs/Onion/v15/Server/sqlite3/db.lock

Затем Team Explorer> Настройки> Настройки репозитория> Добавить /.gitignore. Теперь он должен иметь .vs

# Visual Studio 2015 cache/options directory
.vs/

Исправляет проблему.

1
Sigex