从 ASP.NET Core 3.0 迁移到 3.1Migrate from ASP.NET Core 3.0 to 3.1

本文内容

作者:Scott Addie

本文介绍如何将现有 ASP.NET Core 3.0 项目更新为 ASP.NET Core 3.1。

必备条件Prerequisites

Visual Studio Code 说明使用用于 ASP.NET Core 的 .NET Core CLI 开发功能,如项目创建。可在任何平台(macOS、Linux 或 Windows)上或在任何代码编辑器中遵循这些说明。如果使用 Visual Studio Code 以外的其他内容,则可能需要进行少量更改。

在 global.json 中更新 .NET Core SDK 版本Update .NET Core SDK version in global.json

如果依赖于全局 json文件来面向特定的 .NET Core SDK 版本,请将 version 属性更新为安装的 3.1 SDK 版本。例如:

  1. {
  2. "sdk": {
  3. - "version": "3.0.101"
  4. + "version": "3.1.101"
  5. }
  6. }

更新目标框架Update the target framework

在项目文件中,将目标框架名字对象(TFM)更新为 netcoreapp3.1

  1. <Project Sdk="Microsoft.NET.Sdk.Web">
  2. <PropertyGroup>
  3. - <TargetFramework>netcoreapp3.0</TargetFramework>
  4. + <TargetFramework>netcoreapp3.1</TargetFramework>
  5. </PropertyGroup>
  6. </Project>

更新包引用Update package references

在项目文件中,将每个 Microsoft.AspNetCore.* 包引用的 Version 属性更新为3.1.0 或更高版本。例如:

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

更新 Docker 映像Update Docker images

对于使用 Docker 的应用,请使用包含 ASP.NET Core 3.1 的基本映像。例如:

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

响应 SameSite cookie 更改React to SameSite cookie changes

HTTP cookie SameSite 特性实现在 ASP.NET Core 3.0 和3.1 之间发生了更改。要执行的操作,请参阅以下资源:

查看重大更改Review breaking changes

跨 .NET Core 查看3.0 到3.1 的重大更改,ASP.NET Core,并 Entity Framework Core从3.0 版本迁移到3.1 的重大更改

可选更改Optional changes

以下更改是可选的。

使用组件标记帮助程序Use the Component Tag Helper

ASP.NET Core 3.1 引入了 Component 标记帮助器。标记帮助程序可以在 Blazor 项目中替换 RenderComponentAsync<TComponent> HTML 帮助器方法。例如:

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

有关详细信息,请参阅将组件集成到 Razor 页面和 MVC 应用