1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Aspireのバージョンを上げる

Posted at

以前の記事で.NET 8.0 でプロジェクト全体を作成しましたが、.NET 9.0 の Aspire の方が機能が充実しており使いやすいため、アップデートを行います。

Aspire のアップデート分のみ紹介します。 Blazor や API のアップデートは本記事では紹介しません。

Aspire.AppHost のアップデート

AppHost にインストールされているAspire.Hosting.AppHostパッケージのバージョンを上げます。
AppHost プロジェクト直下で下記コマンドを実行してください。

dotnet add package Aspire.Hosting.AppHost --version 9.1.0

それか csproj ファイルを直接書き換えた後にdotnet restoreを実行でも大丈夫です。

SDK の登録

ただパッケージをアップデートしただけでは、ビルド時に下記エラーが発生します。

 error ASPIRE006: DotnetDemo.AppHost project requires a reference to "Aspire.AppHost.Sdk" with version "9.0.0" or greater to work correctly. Please add the following line after the Project declaration `<Sdk Name="Aspire.AppHost.Sdk" Version="9.0.0" />`.

そのため、AppHost の.csproj ファイルに下記を追加します。

<Sdk Name="Aspire.AppHost.Sdk" Version="9.1.0" />

.NET 8.0 で作成した記事の内容が動かなくなる問題

Aspire のバージョンを.NET 9.0 に上げたところ、以前紹介した内容が動かなくなりました。これを修正します。

var migrations = builder.AddProject<Projects.DotnetDemo_MigrationService>("migrations")
-   .WithReference(dotnetDemoDb)
+   .WithReference(dotnetDemoDb);
+   .WaitFor(dotnetDemoDb);

.NET 9.0 では新しくWaitFor()メソッドが追加されました。もともとはリソースの作成順番は.NET 側でいい感じに依存関係を解析してくれていましたが、それを手動で設定できるようになりました。

具体的には、DB が生成されるまで API サーバは起動しないということが可能です。もともと未指定だったマイグレーションサービスの依存関係を明示することで正常に動くようになりました。

まとめ

.NET 9.0 の Aspire へのアップデートでは以下の点に注意が必要です:

  1. パッケージのアップデート
  2. SDK の明示的な追加
  3. 依存関係の明示(WaitFor()メソッドの使用)

これらの対応により、より安定した Aspire アプリケーションを構築できるようになります。

この記事が皆様のコーディングライフの助けになれば幸いです。

参考

1
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?