从 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 版本
如果依靠 global.json 文件来面向特定 .NET Core SDK 版本,请将 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 更改的响应
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 托管捆绑包安装程序(直接下载)并运行该安装程序。 有关详细信息,请参阅托管捆绑包。