将sqllite数据库存储在visual studio和dotnet可以看到的位置

时间:2017-07-06 02:17:21

标签: c# sqlite asp.net-core .net-core

所以我有一个包含两个项目(webapi,console app)的解决方案。我在它们之间创建了一个共享目录来放置一个sqlite数据库。

所以我用

     Path.GetFullPath(@"../shared/" + Configuration["DBName"]);

并在2017年Visual Studio中运行时获取此路径

     \shared\sqlite.db

但是当我尝试运行控制台命令时

     dotnet ef database update

它认为它位于此处

     \projecta\bin\Debug\shared\   

如何让Visual Studio debug和dotnet ef命令使用相同的路径?

1 个答案:

答案 0 :(得分:2)

当您致电Path.GetFullPath时,它会使用Directory.GetCurrentDirectory的值,这可能会因调用您的代码的人(VS,dotnet等)而有所不同

更好的方法是为您的SQLite文件路径提供一致的位置,该位置不会因调用者而异:

var dbPath = Path.Combine(System.AppContext.BaseDirectory, "..", "shared", Configuration["DBName"]);