最新 .NET 和 ASP.NET Core (v6) 的升级清单
Upgrade checklist for latest .NET and ASP.NET Core (v6)
我正在从 .NET 5 升级到 6(以及 ASP.NET Core/EF Core 5 到 6)。
是否有我可以遵循的综合迁移“清单”?
任何版本的通用清单
1。 Pre-upgrade
- 如果您要升级 non-trivial 生产系统,请确保您有几天空闲时间
- 列出所有 third-party 库 (nugets),并访问它们的存储库。确保每一个都支持最新的框架版本——如果不支持,那么你 1) 还不能升级,或者 2) 必须找到那些还不兼容最新框架的替代品。
2。升级
- 签出新 git 分店
- 运行 所有测试:重要的是在升级前做一个基线,以便能够比较 before/after。记下失败的测试(如果有的话)(以便以后可以忽略它们)。
- 查看发行说明
- 查看官方迁移指南
- 一般:3.1 -> 5.0, 5.0 -> 6.0
- 样本:3.1/5.0 -> 6.0
- 查看重大更改
- C#:overview, v9, v10
- ASP.NET核心:3.1 -> 5.0, 5.0 -> 6.0
- EF 核心:v5, v6
- 更新依赖项(在
Directory.Build.props
或MyProject.csproj
中)
- 必要时更新SDK
- 更新framework:
<TargetFramework>net6.0</TargetFramework>
- 更新语言版本(如有必要):
<LangVersion>10.0</LangVersion>
- 更新名为
Microsoft.AspNetCore.*
和 Microsoft.Extensions.*
的 Microsoft packages
- 仅在必要时更新其他依赖项(以降低此迁移的复杂性)。更新已为新框架版本更新的库,以及必须更新的库,例如non-Microsoft 数据库提供商。
- 必要时更新相关的 dotnet 工具(在
dotnet-tools.json
中或全局安装的工具)
- 处理重大变更
- 修复损坏的代码
- 修复损坏的测试;忽略在迁移之前已经损坏的失败测试(稍后修复)
- 删除过时的解决方法。在最新的框架中找到那些由于 changes/fixes 而不再需要的解决方法。通常那些你(希望)用
// workaround: will be fixed in v6
. 之类的东西注意到的
- 将新的 Roslyn 分析器添加到
.editorconfig
:v5, v6
- 重新运行测试,并与基线进行比较
- 更新文档
- 更新相关项目文档
- 搜索并更新 version-specific 链接,如有必要,例如指向
docs.microsoft.com
的链接通常具有类似 &view=aspnetcore-5.0
的版本号,而版本 之间可能存在行为变化
- 提交 git 分支
3。 Post-upgrade
- 根据需要采用新功能and/or。大多数新框架功能都是可选的,因此只有在您确实需要时才采用它们。
- 执行必要的任务以满足您的持续集成系统(如果适用)。
v6 核对清单
3。 Post-upgrade
- 采用主要新功能,可选
- 重构global using directives
- 重构 file-scoped namespaces
- 重构新 minimal hosting model,合并
Program.cs
和 Startup.cs
- 重构 minimal APIs
我正在从 .NET 5 升级到 6(以及 ASP.NET Core/EF Core 5 到 6)。
是否有我可以遵循的综合迁移“清单”?
任何版本的通用清单
1。 Pre-upgrade
- 如果您要升级 non-trivial 生产系统,请确保您有几天空闲时间
- 列出所有 third-party 库 (nugets),并访问它们的存储库。确保每一个都支持最新的框架版本——如果不支持,那么你 1) 还不能升级,或者 2) 必须找到那些还不兼容最新框架的替代品。
2。升级
- 签出新 git 分店
- 运行 所有测试:重要的是在升级前做一个基线,以便能够比较 before/after。记下失败的测试(如果有的话)(以便以后可以忽略它们)。
- 查看发行说明
- 查看官方迁移指南
- 一般:3.1 -> 5.0, 5.0 -> 6.0
- 样本:3.1/5.0 -> 6.0
- 查看重大更改
- C#:overview, v9, v10
- ASP.NET核心:3.1 -> 5.0, 5.0 -> 6.0
- EF 核心:v5, v6
- 更新依赖项(在
Directory.Build.props
或MyProject.csproj
中)- 必要时更新SDK
- 更新framework:
<TargetFramework>net6.0</TargetFramework>
- 更新语言版本(如有必要):
<LangVersion>10.0</LangVersion>
- 更新名为
Microsoft.AspNetCore.*
和Microsoft.Extensions.*
的 Microsoft packages
- 仅在必要时更新其他依赖项(以降低此迁移的复杂性)。更新已为新框架版本更新的库,以及必须更新的库,例如non-Microsoft 数据库提供商。
- 必要时更新相关的 dotnet 工具(在
dotnet-tools.json
中或全局安装的工具)
- 处理重大变更
- 修复损坏的代码
- 修复损坏的测试;忽略在迁移之前已经损坏的失败测试(稍后修复)
- 删除过时的解决方法。在最新的框架中找到那些由于 changes/fixes 而不再需要的解决方法。通常那些你(希望)用
// workaround: will be fixed in v6
. 之类的东西注意到的
- 将新的 Roslyn 分析器添加到
.editorconfig
:v5, v6 - 重新运行测试,并与基线进行比较
- 更新文档
- 更新相关项目文档
- 搜索并更新 version-specific 链接,如有必要,例如指向
docs.microsoft.com
的链接通常具有类似&view=aspnetcore-5.0
的版本号,而版本 之间可能存在行为变化
- 提交 git 分支
3。 Post-upgrade
- 根据需要采用新功能and/or。大多数新框架功能都是可选的,因此只有在您确实需要时才采用它们。
- 执行必要的任务以满足您的持续集成系统(如果适用)。
v6 核对清单
3。 Post-upgrade
- 采用主要新功能,可选
- 重构global using directives
- 重构 file-scoped namespaces
- 重构新 minimal hosting model,合并
Program.cs
和Startup.cs
- 重构 minimal APIs