本文项目从.NETCore3.1开始一直延续到目前,如果您没有升级过,请参考以下文章:
.Net Core 2.2 升级到 .Net Core 3.1:https://blog.csdn.net/hefeng_aspnet/article/details/131259537
NetCore3.1或Net6.0项目升级到Net7.0:https://blog.csdn.net/hefeng_aspnet/article/details/130128864
Net6.0项目升级到Net7.0:https://blog.csdn.net/hefeng_aspnet/article/details/131286089
Net6.0或Net7.0项目升级到Net8.0:https://blog.csdn.net/hefeng_aspnet/article/details/134659951
打开.NET8.0项目,在项目上右键属性:

进入到属性页面:

选择修改目标框架为.NET 9.0:

如果项目包含多个类库或其它项目,即项目上右键-属性,请重复上面操作即可:

上面都操作完成后,在启动项目上右键-重新生成:

查看输出窗口,全部生成成功:

生成成功后,您可以升级nuget包,或者选择升级nuget包,有些包升级后,不支持原来语法,可以退回至原来版本,项目上右键-管理NuGet程序包:

点击更新:

如果选择所有的包,直接点击右侧更新按钮即可:

有选择的更新:

选择相应程序包-右侧选择版本,点击更新即可。
本文升级AutoMapper-v13.0.1时出现以下异常:

CS0121 以下方法或属性之间的调用具有二义性:“Microsoft.Extensions.DependencyInjection.ServiceCollectionExtensions.AddAutoMapper(Microsoft.Extensions.DependencyInjection.IServiceCollection, params System.Type[])”和“Microsoft.Extensions.DependencyInjection.ServiceCollectionExtensions.AddAutoMapper(Microsoft.Extensions.DependencyInjection.IServiceCollection, params System.Type[])”

发现AutoMapper-v13.0.1正常,AutoMapper.Extensions.Microsoft.DependencyInjection-v12.0.1已弃用,将AutoMapper和AutoMapper.Extensions.Microsoft.DependencyInjection版本都降至12.0.0版本后,异常消除.可能因为之前项目内的AutoMapper-v13.0.1语法不支持,后续有时间研究下。
NPOI升级到2.7.2时:

出现:“ToString”方法没有采用 1 个参数的重载
修改代码:

上面是自己封装的类,您也可以使用三元运算进行转换:
var re = date.HasValue ? Convert.ToDateTime(date).ToString("yyy-MM-dd HH:mm:ss"):"";
MQTT升级V4以后:

出现异常:
命名空间“MQTTnet.Client”中不存在类型或命名空间名“Options”(是否缺少程序集引用?)
命名空间“MQTTnet.Client”中不存在类型或命名空间名“Publishing”(是否缺少程序集引用?)
命名空间“MQTTnet.Client”中不存在类型或命名空间名“Receiving”(是否缺少程序集引用?)
命名空间“MQTTnet.Client”中不存在类型或命名空间名“Subscribing”(是否缺少程序集引用?)
命名空间“MQTTnet.Client”中不存在类型或命名空间名“Unsubscribing”(是否缺少程序集引用?)
降级回3.1版本:

降级后,没有错误:

以上异常处理完成之后,在编译即可成功:

调试运行,项目右键-调试-启动新实例或直接F5:

运行一切正常:

调用服务也OK:

以上项目升级完成,没有太多的问题。
如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。
