1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

.NET Aspireプロジェクトでもdotnet efコマンドが使いたい

Posted at

.NET AspireでAppHostを起動している状態で、そのままWeb APIプロジェクトに対してdotnet efコマンドを叩こうとすると、当該プロジェクトを既にAppHostがロックしているためエラーになります

The process cannot access the file 'xxx.exe' because it is being used by another process. [xxx.csproj]

以下の手順を行えば回避が可能です。

Web APIの停止

まず、AspireのWeb画面からWeb APIを停止します

PostgreSQLコンテナの接続情報を調べる

AspireのWeb画面から、コンテナの接続情報を調べます

Connection Stringの設定

Web APIのProgram.csを書き換えて、AspireからConnectionStringが取れない場合は
手動設定したConnection Stringを参照するようにします

builder.Services.AddDbContext<AppDbContext>(options =>
    options.UseNpgsql(builder.Configuration.GetConnectionString("xxxxx")
        ?? "Host=localhost;Database=xxxxx;Port=xxxxx;Username=postgres;Password=xxxxx"));

dotnet ef でやりたいことの実行

dotnet ef database update --project xxx --startup-project xxx --verbose

Web APIの起動

AspireのWeb画面からWeb APIを起動します

もう少し、スマートな回避方法はないのでしょうか。。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?