最近要做.NET 3到.NET 6的升级,在InfoQ看到这篇文章不错,尝试翻译一下分享给大家!
原文作者:Edin Kapić

Microsoft .NET Core Framework 的长期支持 (LTS) 版本 3.1 计划于 2022 年 12 月 13 日停止支持。Microsoft 建议将 .NET Core 3.1 应用程序升级到 .NET 6.0 以在未来保持支持,同时开发人员对 .NET 支持政策的看法喜忧参半。
2019 年发布的 Microsoft .NET Core Framework 版本 3.1 即将结束其支持日期。据微软高级项目经理 Dominique Whittaker 称,使用 3.1 版本的客户应该迁移到 .NET 6 或 7,以继续获得官方支持和安全补丁。
Whittaker 解释说:.NET Core 3.1 应用程序在支持日期结束后仍将运行,但客户可能会面临潜在的安全漏洞,这些漏洞只会为受支持的版本打补丁。
3.1 版是 Microsoft 所谓的长期支持 (LTS) 版本,自发布之日起支持生命周期为三年。.NET 7.0 等非 LTS(或“当前”)版本的支持生命周期较短,为 18 个月,因为 Microsoft 将在下一个 LTS 版本发布后为其提供六个月的支持。Microsoft 计划 .NET 版本每年推出一个主要版本的 .NET,在 LTS 和当前版本之间交替。
.NET 最新的 LTS 版本是 6.0,微软计划支持到 2024 年 11 月 12 日。微软预计将在 2022 年 11 月发布非 LTS 版本 .NET 7.0,这意味着当前的 .NET Core 3.1 客户可以选择在 .NET Core 3.1 支持日期结束之前升级到 .NET 6 或 7 之间。
升级到 .NET 6.0 涉及更改项目文件中的一行以更改目标框架版本。但是,.NET Core 3.1 和 .NET 6.0 之间可能存在运行时或源代码不兼容问题。
微软建议开发者在升级他们的应用程序时检查官方兼容性指南是否存在任何问题,并提供了一个名为 upgrade-assistant 的开源升级工具。该工具分析应用程序代码、更新项目文件、检查重大更改并进行一些自动代码修复——但开发人员仍然需要进行一些手动修复。
开发者社区在社交网络上的反应不一。一些开发人员认为,三年的支持周期对于企业项目来说太短了,而另一些开发人员则认识到,代码依赖性的复杂性不断增加,使得频繁的版本升级成为一种必要和一种新的工作方式。广泛使用的 CSLA.NET 应用程序框架的创建者 Rockford Lhotka 解释说,.NET 代码升级的大部分痛苦来自将旧的 .NET Framework 迁移到现代 .NET Framework,而 .NET Core 版本之间的升级实质上是减少工作强度。
Microsoft 定期发布源自 .NET SDK 使用情况的汇总遥测信息。根据2022年6月的数据,应用程序使用最多的.NET Framework版本恰恰是.NET Core 3.1,占遥测数据的31%。




