什么是Sqlite数据库在我的项目的.vs文件夹中做什么?

Pro*_*ofK 22 sqlite projects-and-solutions visual-studio visual-studio-2017

我现在已经在VS 2017中的Core控制台应用程序和标准.NET Framework MVC应用程序中注意到了这一点.它被命名<solution-name>.sqlite,并具有以下表格:

FileScannerCache
FileSystemData
FileSystemEntity
FileSystemReference
ProviderEntity
Setting
SymbolDefinition
Run Code Online (Sandbox Code Playgroud)

它似乎包含MSBuild相关数据,但是当我查询一些表时,就像

select * from FileScannerCache
Run Code Online (Sandbox Code Playgroud)

我收到了错误System.FormatException: String was not recognised as a valid DateTime.我正在使用Sqlite/SQL Server Compact Toolbox来检查和查询此数据库.

Qui*_*ais 18

该文件似乎与VS2017中的"轻量级解决方案加载"(LSL)功能有关.如果在解决方案中禁用LSL,请从目录中删除该文件并打开解决方案,您将看到它未重新创建.但是,再次为解决方案启用LSL并打开解决方案,您将再次看到创建的文件.我认为它被用作缓存信息的一种形式,以启用LSL功能.

另外,.vs文件夹中的所有信息都应该可以安全地从源代码管理中排除.


Sig*_*gex 7

如果你最终来到这里是因为你得到

 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
Run Code Online (Sandbox Code Playgroud)

然后 Team Explorer > Settings > Repository Settings > Add /.gitignore。它现在应该有 .vs

# Visual Studio 2015 cache/options directory
.vs/
Run Code Online (Sandbox Code Playgroud)

修复问题。