我的项目的.vs文件夹中为什么会有一个Sqlite数据库?

29

我现在在一个Core控制台应用程序和一个标准的.NET Framework MVC应用程序中使用VS 2017时注意到了这一点。它被命名为<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 来检查和查询这个数据库。


我找不到这样的文件 - 这可能来自于您安装的插件。 - H H
请随意在此处发布SQLite Toolbox问题:https://github.com/ErikEJ/SqlCeToolbox/issues/new - 不知道这是否相关:https://github.com/ErikEJ/SqlCeToolbox/issues/70 - ErikEJ
@HenkHolterman,事实上,我刚刚安装了Sqlite/CE工具箱。 - ProfK
2个回答

20

这个文件似乎与 VS2017 中的“轻量级解决方案加载”(LSL)功能相关。如果您在解决方案中禁用 LSL,并从目录中删除该文件,然后打开您的解决方案,您将看到它不会重新创建。但是,再次为解决方案启用 LSL 并打开您的解决方案,您将看到文件再次被创建。我认为它是作为一种缓存信息的形式来使用,以启用 LSL 功能。

顺便提一下,.vs 文件夹中的所有信息都应该安全地排除在源代码控制之外。


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

然后打开 Team Explorer > Settings > Repository Settings > 添加 /.gitignore。现在应该已经有了 .vs。

# Visual Studio 2015 cache/options directory
.vs/

解决问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接