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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?