ASP.NET Core 3.0 から 3.1 への移行
作成者: Scott Addie
この記事では、既存の ASP.NET Core 3.0 プロジェクトを ASP.NET Core 3.1 に更新する方法について説明します。
前提条件
- ASP.NET および Web 開発ワークロードを含む Visual Studio 2019 16.4 以降
- .NET Core 3.1 SDK
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
SameSite の cookie の変更への対応
ASP.NET Core 3.0 と 3.1 の間で変更された HTTP Cookie に対する SameSite
属性の実装。 実行すべきことについては、次のリソースを参照してください。
- ASP.NET Core での SameSite Cookie を使用する。
- aspnet/Announcements#390
- cookie今後の SameSite の ASP.NET と ASP.NET Core における変更点
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" />
詳細については、「MVC または Razor Pages を使用したコア Razor コンポーネント ASP.NET 統合を参照してください。
ASP.NET Core モジュール (ANCM)
Visual Studio のインストール時に ASP.NET Core モジュール (ANCM) が選択されたコンポーネントではなかった場合、または ANCM の以前のバージョンがシステムにインストールされていた場合は、最新の .NET Core ホスティング バンドル インストーラー (直接ダウンロード) をダウンロードし、インストーラーを実行します。 詳細については、「ホスティング バンドル」を参照してください。
ASP.NET Core