Net7升级到Net8相关问题

除了按照网上常规Net8升级步骤外,编译和运行都会发生一些异常和错误,代码兼容性根据提示倒是可以修改。倒是运行时错误,网上资料比较少,下面会持续登记升级过程中踩的坑:

1. MediatR 库升级到最新的12.2后,报错各种服务找不到,实际是没有DI实现:

原来注册一般这么写:

1 services.AddMediatR(Assembly.GetExecutingAssembly());

升级后改成如下:

1 services.AddMediatR(cfg => cfg.RegisterServicesFromAssembly(Assembly.GetExecutingAssembly()));

 

2. AutoMapper库升级到13.0.1后,老的 AutoMapper.Extensions.Microsoft.DependencyInjection 库就可以删除引用了。

<PackageReference Include="AutoMapper" Version="13.0.1" /> <!--<PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="12.0.0" />-->

 

3. 升级到net8后,使用JWT认证的地方,一般是: AddJwtBearer(option => ...{ } ),要增加一个属性来兼容老代码:  option.UseSecurityTokenValidators = true; ,否则认证会失败:

1 option.SecurityTokenValidators.Clear(); 2 option.UseSecurityTokenValidators = true; 3 option.SecurityTokenValidators.Add(new UserTokenValidation(appSetting, httpContextAccessor)); 4 option.SaveToken = true;

Net8为了性能的提升,废弃了如上写法: 参考 CS0618

 兼容不是好办法,最好的还是按照建议,实现验证TokenHandlers。

 升级到Net8后,初步体验到速度确实有提升,至少打包后exe和dll都变小了,依赖ref也少了许多。其它待查问题后续更新中...

 


__EOF__

本文作者pccai
本文链接https://www.cnblogs.com/pccai/p/18051537.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   pccai  阅读(435)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示