从 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.js 文件以 特定版本.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/core/aspnet:3.1

HTTP SameSite 的属性实现在 cookie ASP.NET Core 3.0 和 3.1 之间更改。 有关要采取的操作,请参阅以下资源:

查看中断性变更

有关从版本 3.0 迁移到 3.1 的中断性变更,请查看 .NET Core、ASP.NET Core 和 Entity Framework Core 之间的 3.0 到 3.1 中断性变更

可选更改

以下更改是可选的。

使用组件标记帮助程序

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

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

有关详细信息,请参阅 预呈现和集成 ASP.NET Core Razor 组件