ASP.NET Core 3.0 から 3.1 への移行

作成者: Scott Addie

この記事では、既存の ASP.NET Core 3.0 プロジェクトを ASP.NET Core 3.1 に更新する方法について説明します。

前提条件

global.json での .NET Core SDK バージョンの更新

特定の .NET Core SDK バージョンを対象とする global.json ファイルを使用する場合は、version プロパティを、インストールされる 3.1 SDK バージョンに更新します。 次に例を示します。

{
  "sdk": {
-    "version": "3.0.101"
+    "version": "3.1.101"
  }
}

ターゲット フレームワークを更新する

次のように、プロジェクト ファイルのターゲット フレームワーク モニカー (TFM)netcoreapp3.1 に更新します。

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
-    <TargetFramework>netcoreapp3.0</TargetFramework>
+    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>

</Project>

パッケージ参照の更新

プロジェクト ファイルで、各 Microsoft.AspNetCore.* パッケージ参照の Version 属性を 3.1.0 以降に更新します。 次に例を示します。

<ItemGroup>
-    <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.0.0" />
-    <PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="3.0.0" Condition="'$(Configuration)' == 'Debug'" />
+    <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.1.1" />
+    <PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="3.1.1" Condition="'$(Configuration)' == 'Debug'" />
</ItemGroup>

Docker イメージの更新

Docker を使用しているアプリでは、ASP.NET Core 3.1 を含む基本イメージを使用しています。 次に例を示します。

docker pull mcr.microsoft.com/dotnet/aspnet:3.1

ASP.NET Core 3.0 と 3.1 の間で変更された HTTP cookie に対する SameSite 属性の実装。 実行すべきことについては、次のリソースを参照してください。

Visual Studio での公開

.pubxml ファイルで TargetFramework を 3.1 に更新します。

- <TargetFramework>netcoreapp3.0</TargetFramework>
+ <TargetFramework>netcoreapp3.1</TargetFramework>

破壊的変更の確認

NET Core、ASP.NET Core および Entity Framework Core にわたるバージョン 3.0 から 3.1 の破壊的変更について、3.0 から 3.1 への移行における破壊的変更に関するページを参照してください。

オプションの変更

次の変更はオプションです。

コンポーネント タグ ヘルパーの使用

ASP.NET Core 3.1 では Component タグ ヘルパーが導入されています。 このタグ ヘルパーは、Blazor プロジェクトの RenderComponentAsync<TComponent> HTML ヘルパー メソッドに置き換えることができます。 次に例を示します。

- @(await Html.RenderComponentAsync<Counter>(RenderMode.ServerPrerendered, new { IncrementAmount = 10 }))
+ <component type="typeof(Counter)" render-mode="ServerPrerendered" param-IncrementAmount="10" />

詳細については、「ASP.NET Core Razor コンポーネントのプリレンダリングと統合を行う」を参照してください。

ASP.NET Core モジュール (ANCM)

Visual Studio のインストール時に ASP.NET Core モジュール (ANCM) が選択されたコンポーネントではなかった場合、または ANCM の以前のバージョンがシステムにインストールされていた場合は、最新の .NET Core ホスティング バンドル インストーラー (直接ダウンロード) をダウンロードし、インストーラーを実行します。 詳細については、「ホスティング バンドル」を参照してください。