如何将ASP.NET Core 3.1成功升级至6.0版本?

摘要:这篇文章主要介绍了从ASP.NET Core3.1迁移到6.0的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们来一起学习进步吧
这篇文章主要介绍了从ASP.NET Core3.1迁移到6.0的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们来一起学习进步吧 11月中旬,微软官方已经发布了dotnet 6的lts版 dotnet core经过前几个版本的发展和沉淀,到3.1已经基本趋于稳定。 所以从 .net core 3.1升级到.net 6将非常简单,确定你使用的vs是 Visual Studio 2022 或更高版本 下面咱们就开始吧: 在global.json中更新 .NET Core SDK 版本 (没有此文件可以忽略) { "sdk": { "version": "6.0" } } 更新项目文件目标框架 <PropertyGroup> <TargetFramework>net6.0</TargetFramework> <ErrorOnDuplicatePublishOutputFiles>false</ErrorOnDuplicatePublishOutputFiles> 重新包引用 在项目文件中,将每个 Microsoft.AspNetCore.* 和 Microsoft.Extensions.* 包引用的 Version 属性更新为6.0.0 或更高版本。 更新 Docker 镜像 对于使用 Docker 的应用,请使用包含 dotnet 6.0 的基本镜像。 例如: 原来 mcr.microsoft.com/dotnet/aspnet:3.1 mcr.microsoft.com/dotnet/sdk:3.1 现在 mcr.microsoft.com/dotnet/aspnet:6.0 mcr.microsoft.com/dotnet/sdk:6.0 从3.1版迁移到6.0版的重大更改 那从dotnet core 3.1 到 dotnet 6 的lts版 有哪些重大更改呢? 其实也并不多,主要集中在以下几点: Azure:删除了Microsoft前缀的Azure集成程序包 SignalR:MessagePack集线器协议已移至MessagePack 2.x程序包 SignalR:UseSignalR和UseConnections方法已删除 可以会有的坑 Core WebApi框架模板项目中默认集成了swagger,这个是新增的,但之前项目有一些自定义配置和扩展,也导致了冲突。 想尝试C#10体验下新语法新特性需要花了一些时间。 【容器内运行需要注意】项目升级完发现的Bug,DateTime这个天天见的值出现了变化,在 ASP.NET Core 3.1 及更早版本中,DateTime绑定的是服务器本地时间,而5.0之后,DateTime绑定的是UTCTime。当前时间问题解决方式:https://github.com/dotnet/dotnet-docker/issues/3237