注意事項
Aspire 13.0 は、破壊的変更を伴うメジャー バージョン リリースです。 アップグレードする前に、「 破壊的変更」セクションを 確認してください。
この記事では、既存の Aspire プロジェクトを最新バージョン ( Aspire 13.0) に更新する手順について説明します。 Aspire 13.0 にアップグレードする最も簡単な方法は、Aspire コマンドで を使用することです。
ヒント
Aspireを初めて使用する場合は、何もアップグレードする理由はありません。 詳細については、「 Aspire セットアップとツール」を参照してください。
注
Aspire 8.x からアップグレードする場合は、最初にアップグレード アシスタントを使用して Aspire 9.x にアップグレードするか、手動でアップグレードしてから、13.0 にアップグレードする必要があります。 バージョン 8 からアップグレードする場合は、 レガシ Aspire ワークロードを必ず削除 してください。
[前提条件]
プロジェクトを Aspire 13.0 にアップグレードする前に、次の前提条件があることを確認してください。
- 最新のツールをインストールします。
- SDKを使用するAspire。
- 9.0 より古いバージョンの Aspire がある場合は、 レガシ ワークロードを削除します。
Aspire CLI を使用したアップグレード
Aspire 13.0 にアップグレードする推奨される方法は、Aspire CLI を使用することです。 このメソッドは、必要なすべての更新プログラムを自動的に処理します。
Aspire CLI を更新する
まず、 Aspire CLI を最新バージョンに更新します。
curl -sSL https://aspire.dev/install.sh | bash
Aspire プロジェクトを更新する
Aspire コマンドを使用して、aspire update プロジェクトを更新します。
aspire update
このコマンドは次の操作を行います:
- AppHost プロジェクトの
Aspire.AppHost.Sdkバージョンを更新します。 - すべての Aspire NuGet パッケージをバージョン 13.0 に更新します。
- 依存関係の解決を自動的に処理します。
- 通常のプロジェクトと中央パッケージ管理 (CPM) の両方をサポートします。
Aspire テンプレートを更新する
次のコマンドを実行して、最新の Aspire プロジェクト テンプレートをインストールします。
dotnet new install Aspire.ProjectTemplates
ヒント
レガシ Aspire ワークロードがインストールされている場合は、 --force フラグを渡して既存のテンプレートを上書きする必要があります。 レガシ ワークロードをアンインストールする手順については、「Aspire ワークロードの削除」を参照してください。
AppHost テンプレートの更新
Aspire 13.0 では、シンプルな AppHost プロジェクト テンプレート構造が導入されています。 SDK によって Aspire.Hosting.AppHost パッケージがカプセル化され、結果としてプロジェクト ファイルがクリーンになりました。
9.x以前
<Project Sdk="Microsoft.NET.Sdk">
<Sdk Name="Aspire.AppHost.Sdk" Version="9.5.2" />
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net9.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<UserSecretsId>1bf2ca25-7be4-4963-8782-c53a74e10ad9</UserSecretsId>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\MyApp.ApiService\MyApp.ApiService.csproj" />
<ProjectReference Include="..\MyApp.Web\MyApp.Web.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Aspire.Hosting.AppHost" Version="9.5.2" />
<PackageReference Include="Aspire.Hosting.Redis" Version="9.5.2" />
</ItemGroup>
</Project>
13.0以降
<Project Sdk="Aspire.AppHost.Sdk/13.0.0">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<UserSecretsId>1bf2ca25-7be4-4963-8782-c53a74e10ad9</UserSecretsId>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\MyApp.ApiService\MyApp.ApiService.csproj" />
<ProjectReference Include="..\MyApp.Web\MyApp.Web.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Aspire.Hosting.Redis" Version="13.0.0" />
</ItemGroup>
</Project>
キーの変更
-
簡略化された SDK 宣言: SDK は、バージョンが
<Project>のSdk="Aspire.AppHost.Sdk/13.0.0"タグで直接指定されるようになりました。 - 明示的な Aspireはありません。Hosting.AppHost リファレンス: SDK にはこのパッケージが自動的に含まれるようになり、定型句が減ります。
-
クリーナー構造: 個別の
<Sdk Name="..." />要素とMicrosoft.NET.Sdkベース SDK を削除しました。 -
ターゲット フレームワーク:
net9.0からnet10.0に更新されました。
aspire update コマンドは、9.x から 13.0 にアップグレードするときに、この移行を自動的に処理します。
単一ファイルの AppHosts
ヒント
さらに簡単なセットアップのために、 Aspire 13.0 では、プロジェクト ファイルをまったく必要としない単一ファイルの AppHost もサポートされています。 単一ファイルの AppHost は、迅速なプロトタイプと学習シナリオに最適です。
ファイル ベースの AppHost と同じプロジェクト:
apphost.cs
#:sdk Aspire.AppHost.Sdk@13.0.0
#:package Aspire.Hosting.Redis@13.0.0
var builder = DistributedApplication.CreateBuilder(args);
var cache = builder.AddRedis("cache");
var api = builder.AddProject("apiservice", "../MyApi")
.WithReference(cache);
builder.Build().Run();
プロジェクト ファイルは必要ありません。 ディレクティブを使用して宣言されたパッケージ参照を含#:package.cs ファイルだけです。
注
現在、単一ファイルの AppHost は Visual Studioではサポートされていません。 単一ファイルの AppHost を操作するには、 Visual Studio Code またはコマンド ラインを使用します。
ソリューションを Aspire 13.0 に手動でアップグレードする
プロジェクトを手動でアップグレードする場合は、プロジェクト ファイルを直接更新できます。 次の手順では、このプロセスについて説明します。
- 新しい 13.0 SDK (Aspire) を使用するように
Aspire.AppHost.Sdkプロジェクト ファイルを編集します。 - プロジェクト ファイル内の NuGet パッケージを最新バージョンに更新します。
- 重大な変更に対処するようにコードを調整します。
AppHost プロジェクト ファイルを編集する
AppHost プロジェクトを Aspire 13.0 にアップグレードするには、新しい SDK 宣言を使用するようにプロジェクト ファイルを更新し、明示的な Aspire.Hosting.AppHost パッケージ参照を削除します。
- <Project Sdk="Microsoft.NET.Sdk">
+ <Project Sdk="Aspire.AppHost.Sdk/13.0.0">
- <Sdk Name="Aspire.AppHost.Sdk" Version="9.5.2" />
<PropertyGroup>
<OutputType>Exe</OutputType>
- <TargetFramework>net9.0</TargetFramework>
+ <TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
- <IsAspireHost>true</IsAspireHost>
<UserSecretsId>0afc20a6-cd99-4bf7-aae1-1359b0d45189</UserSecretsId>
</PropertyGroup>
<ItemGroup>
- <PackageReference Include="Aspire.Hosting.AppHost" Version="9.5.2" />
+ <!-- Aspire.Hosting.AppHost is now included automatically by the SDK -->
</ItemGroup>
</Project>
NuGet パッケージを更新する
Aspire ソリューションの最新の更新プログラムを利用するには、すべての NuGet パッケージをバージョン 13.0.0に更新します。
プロジェクト パッケージを更新するには、次の .NET CLI コマンドを使用して、 Aspire パッケージをバージョン 13.0.0に更新します。
dotnet add package Aspire.Hosting.Redis --version 13.0.0
パッケージ参照が既に存在する場合、dotnet add package コマンドは指定したバージョンへの参照を更新します。 詳細については、「dotnet add package」を参照してください。
ヒント
他のプロジェクトの NuGet パッケージも最新バージョンに更新する必要があります。
重大な変更
Aspire 13.0 の導入により、いくつかの破壊的変更があります。 これらの変更に対処するには、コードを調整する必要があります。
Aspire 13.0 での破壊的変更の完全な一覧については、Aspire 13.0 の破壊的変更を参照してください。
Important
アップグレード元のバージョン以降のすべてのバージョンで Aspire の破壊的変更を確認してください。 たとえば、 Aspire 9.0 からアップグレードする場合は、9.0 から 13.0 のすべてのバージョンの破壊的変更に対処する必要があります。
アップグレード アシスタントを使用する
アップグレード アシスタント は、対象プロジェクトを最新バージョンにアップグレードするのに役立つツールです。 アップグレード アシスタントを初めて使用する場合は、次の 2 つのモダリティから選択できます。
アップグレード アシスタントのインストール方法に関係なく、アップグレード アシスタントを使用して、 Aspire プロジェクトを Aspire 13.0 にアップグレードできます。
Aspireを使用して Aspire AppHost プロジェクトを Visual Studio 13.0 にアップグレードするには、ソリューション エクスプローラーでプロジェクトを右クリックし、[アップグレード] を選択します。
Important
アップグレード アシスタント がまだインストールされていない場合は、インストールするように求められます。
アップグレード アシスタントにウェルカム パッケージが表示されます。 「Aspire」アップグレード「」オプションを選択します。
Aspire アップグレード オプションが選択されている状態で、アップグレード アシスタントに選択可能なアップグレード ターゲット コンポーネントが表示されます。 すべてのオプションをオンのままにして、アップグレードの選択を選びます。
最後に、アップグレードするコンポーネントを選択すると、アップグレード アシスタントにアップグレード プロセスの結果が表示されます。 すべてが成功した場合は、各コンポーネントの横に緑色のチェック マークが表示されます。
Aspire AppHost プロジェクトをアップグレードするには、Upgrade Assistant CLI がインストールされていることを確認します。 Aspire AppHost プロジェクト ファイルのルート ディレクトリでターミナル セッションを開き、次のコマンドを実行します。
upgrade-assistant upgrade
出力は対話型であり、アップグレードの種類を選択することを想定しています。 Aspire をアップグレードする オプションを選択してください。
Selected options
────────────────────────────────────────────────────────────────────────────────────
Source project ..\AspireSample\AspireSample.AppHost\AspireSample.AppHost.csproj
Steps
────────────────────────────────
Source project / Upgrade type
────────────────────────────────
How do you want to upgrade project AspireSample.AppHost?
> Aspire upgrades
Upgrade to latest Aspire version (aspire.latest)
Upgrade project to a newer .NET version
In-place project upgrade (framework.inplace)
NuGet upgrades
NuGet central package management (CPM) (nuget.cpm)
Navigation
Back
Exit
キーボードを使って上↑、または下↓に移動し、アップグレードAspireオプションを選択します。 アップグレード アシスタントによって、最終的な確認が求められます。 アップグレードを続けるには、と Y を入力してください。
Selected options
────────────────────────────────────────────────────────────────────────────────────
Source project ..\AspireSample\AspireSample.AppHost\AspireSample.AppHost.csproj
Upgrade type aspire.latest
Steps
──────────────────────────────────────────
Source project / Upgrade type / Upgrade
──────────────────────────────────────────
We have gathered all required options and are ready to do the upgrade. Do you want to continue? [y/n] (y):
最後に、アップグレード プロセスが完了すると、アップグレード アシスタントにアップグレード プロセスの結果が表示されます。
Finalizing operation...
Complete: 3 succeeded, 0 failed, 7 skipped.
Aspire ワークロードを削除する (バージョン 8 からの初回アップグレードのみ)
初めて Aspire 8 から Aspire 9 以降にアップグレードする場合は、レガシ ワークロードを削除する必要があります。 この手順は、 Aspire 9 バージョン間または Aspire 9 から 13 へのアップグレードには必要ありません。
以前は、aspire ワークロードがプロジェクトの作成と実行のために必要でした。 ただし、 Aspire 9 以降ではワークロードは不要になり、 .NET 環境から削除する必要があります。
Important
Aspire 9 以上のテンプレートを有効にするには、 8 (Aspire) を削除する必要があります。
ターミナルを開き、
dotnet workload listコマンドを実行して、インストール ソースを見つけます。上記のコマンドは、 .NET 環境にインストールされているワークロードの一覧を示しています。 Aspireのインストールに使用する方法は、出力の [インストール ソース] 列の下に表示され、のVisual Studio、 SDK の場合は .NET です。 たとえば、次のスニペットは、Visual StudioのインストールにAspireが使用されたことを示しています。
Installed Workload Id Manifest Version Installation Source -------------------------------------------------------------------- aspire 8.2.2/8.0.100 VS 17.14.36109.1Aspire 8 を削除します。
インストール ソースが VS で始まる場合:
- Visual Studio インストーラー アプリを開きます。
- のインストール インスタンスをVisual Studioします。
- 選択 個々のコンポーネント。
-
aspireを検索します。 - SDK の選択を解除します。
- [ 変更 ] ボタンを選択して変更を適用します。
インストール ソースが SDK で始まる場合は、
dotnet workload uninstall aspireを実行してAspireを削除します。
アップグレードを確認する
アップグレードと同様に、アプリが期待どおりに実行され、すべてのテストが成功することを確認します。 ソリューションを構築し、出力ウィンドウで提案、警告、またはエラーを探します。以前は問題ではなかったものに対処します。 問題が発生した場合は、
Aspire