web-dev-qa-db-ja.com

プロジェクトの.vsフォルダーでSqliteデータベースは何をしていますか?

VS 2017では、コアコンソールアプリと標準の.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ツールボックスを使用しています。

22
ProfK

このファイルは、VS2017の「Lightweight Solution Load」(LSL)機能に関連しているようです。ソリューションでLSLを無効にした場合、ディレクトリからファイルを削除してソリューションを開くと、再作成されていないことがわかります。ただし、ソリューションのLSLを再度有効にしてソリューションを開くと、ファイルが再度作成されます。 LSL機能を有効にするためのキャッシュ情報の形式として使用されていると思います。

余談ですが、.vsフォルダー内のすべての情報は、ソース管理から除外しても安全です。

17
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

次に、[チームエクスプローラー]> [設定]> [リポジトリ設定]> [/.gitignoreを追加します。現在は.vsになっているはずです

# Visual Studio 2015 cache/options directory
.vs/

問題を修正。

3
Sigex