从 ASP.NET Core 3.0 迁移到 3.1

作者:Scott Addie

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

先决条件

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

如果依赖于文件 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

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 组件。

ASP.NET Core 模块 (ANCM)

如果在安装 Visual Studio 时 (ANCM) 的 ASP.NET Core 模块不是选定的组件,或者如果系统上安装了 ANCM 的早期版本,请下载最新的 .NET Core 托管捆绑包安装程序 (直接下载) 并运行安装程序。 有关详细信息,请参阅 Hosting Bundle