從 ASP.NET Core 3.0 移轉到 3.1
作者:Scott Addie
本文說明如何將現有的 ASP.NET Core 3.0 專案更新為 ASP.NET Core 3.1。
必要條件
- Visual Studio 2019 16.4 或更新版本,其中包含 ASP.NET 和網頁程式開發工作負載
- .NET Core 3.1 SDK
更新 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
回應 SameSite cookie 變更
在 ASP.NET Core 3.0 與 3.1 之間,HTTP Cookie 的 SameSite
屬性實作已有所變更。 如需要採取的動作,請參閱下列資源:
- 在 ASP.NET Core 中使用 SameSite Cookie。
- aspnet/Announcements#390
- ASP.NET 和 ASP.NET Core 中即將到來的 SameSite cookie 變更
使用 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 元件與 MVC 或 Razor Pages。
ASP.NET Core 模組 (ANCM)
如果在安裝 Visual Studio 時,ASP.NET Core 模組 (ANCM) 不是選取的元件,或者如果系統上已安裝舊版的 ANCM,請下載最新的 .NET Core 裝載套件組合安裝程式 (直接下載),並執行安裝程式。 如需詳細資訊,請參閱裝載組合套件。