所以我有一个包含两个项目(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命令使用相同的路径?
答案 0 :(得分:2)
当您致电Path.GetFullPath
时,它会使用Directory.GetCurrentDirectory
的值,这可能会因调用您的代码的人(VS,dotnet等)而有所不同
更好的方法是为您的SQLite文件路径提供一致的位置,该位置不会因调用者而异:
var dbPath = Path.Combine(System.AppContext.BaseDirectory, "..", "shared", Configuration["DBName"]);