2017-07-06 6 views
1

私は2つのプロジェクト(webapi、コンソールアプリケーション)を持つソリューションを持っています。私はそれらの間にsqliteデータベースを置くための共有ディレクトリを作成しました。視覚スタジオとドットネットが見ることができる場所にsqlliteデータベースを格納する

だから私は

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

を使用して、私は、Visual Studioでそれを実行すると2017

 \shared\sqlite.db 

このパスを取得するしかし、私は、コンソールコマンドを実行しよう

 dotnet ef database update 

それここにいると思います

 \projecta\bin\Debug\shared\ 

Visual Studioのデバッグおよびdotnet efコマンドで同じパスを使用するにはどうすればよいですか?これを行うには

答えて

2

あなたがPath.GetFullPathを呼び出すと、それはあなたのコード(VS、DOTNET、など)と呼ばれる人に基づいて変化し得る、Directory.GetCurrentDirectoryの値を使用しています

良い方法は、一貫したあなたのSQLiteのファイルパスを与えています発信者に応じて変化しない場所:

var dbPath = Path.Combine(System.AppContext.BaseDirectory, "..", "shared", Configuration["DBName"]); 
関連する問題