升级到新的 .NET 版本

.NET 每年都会发布新的版本。 许多开发人员在新版本推出后立即启动升级过程,而其他开发人员则等到他们正在使用的版本不再受支持时才升级。 升级过程需要考虑多个方面。

升级到新的 .NET 版本的常见原因:

  • 当前使用的 .NET 版本不再受支持
  • 新版本支持新的操作系统
  • 新版本具有重要的 API、性能或安全功能

升级开发环境

若要升级到新的 .NET 版本,.NET SDK 是要安装的主要组件。 它包括更新的 .NET CLI、生成系统和运行时版本。

.NET 网站提供安装程序和存档,可在任何受支持的操作系统和体系结构上下载和使用。

某些操作系统有一个包管理器,可用于安装你可能更喜欢的新 .NET 版本。

Visual Studio 会自动安装新的 .NET SDK 版本。 对于 Visual Studio 用户,升级到较新的 Visual Studio 版本就足够了。

升级源代码

升级应用的唯一必需更改是将项目文件中的 TargetFramework 属性更新为较新的 .NET 版本。

操作方法如下:

  • 打开项目文件(*.csproj*.vbproj*.fsproj 文件)。
  • 例如,将 <TargetFramework> 属性值从 net6.0 更改为 net8.0
  • 如果使用 <TargetFrameworks> 属性,则相同的模式适用于该属性。

升级助手可以自动进行这些更改。

下一步是使用新的 SDK 生成项目(或解决方案)。 如果需要进行其他更改,SDK 将提供警告和错误进行指导。

可能需要运行 dotnet workload restore 才能使用新的 SDK 版本还原工作负载。

更多资源:

更新持续集成 (CI)

CI 管道遵循与项目文件和 Dockerfile 类似的更新过程。 通常,只需更改版本值即可更新 CI 管道

更新托管环境

有许多模式可用于托管应用程序。 如果托管环境包含 .NET 运行时,则需要安装新版本的 .NET 运行时。 在 Linux 上,需要安装依赖项,但它们通常不会随 .NET 版本的更改而更改。

对于容器,需要更改 FROM 语句,以包含新的版本号。

以下 Dockerfile 示例演示如何拉取 ASP.NET Core 8.0 映像。

FROM mcr.microsoft.com/dotnet/aspnet:8.0

Azure 应用服务等云服务中,需要更改配置。