從 ASP.NET Core 3.0 移轉到 3.1

作者:Scott Addie

本文說明如何將現有的 ASP.NET Core 3.0 專案更新為 ASP.NET Core 3.1。

必要條件

更新 global.json 中的 .NET Core SDK 版本

如果您依賴 global.json 檔案,以特定 .NET Core SDK 版本為目標,請將 version 屬性更新為已安裝的 .NET 3.1 SDK 版本。 例如:

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

更新目標 Framework

在專案檔中,將目標 Framework Moniker (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

HTTP cookie 的 SameSite 屬性實作已在 ASP.NET Core 3.0 與 3.1 之間做了變更。 如需要採取的動作,請參閱下列資源:

使用 Visual Studio 發佈

.pubxml 檔案中,將 TargetFramework 更新為 3.1:

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

檢閱中斷性變更

從 3.0 版移轉至 3.1 版的中斷性變更中,檢閱 .NET Core、ASP.NET Core 和 Entity Framework Core 之間的 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 裝載套件組合安裝程式 (直接下載),並執行安裝程式。 如需詳細資訊,請參閱裝載組合套件