惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Martin Fowler
Martin Fowler
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
IT之家
IT之家
美团技术团队
酷 壳 – CoolShell
酷 壳 – CoolShell
Y
Y Combinator Blog
T
Tailwind CSS Blog
D
Docker
博客园 - Franky
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Google DeepMind News
Google DeepMind News
腾讯CDC
Vercel News
Vercel News
Engineering at Meta
Engineering at Meta
U
Unit 42
The Cloudflare Blog
S
SegmentFault 最新的问题
WordPress大学
WordPress大学
爱范儿
爱范儿
Recent Announcements
Recent Announcements
博客园 - 聂微东
博客园 - 叶小钗
H
Help Net Security
MyScale Blog
MyScale Blog

博客园 - pccai

Matlab R2023b全家桶docker镜像下载 在Docker中安装GaussDB的ODBC驱动并添加Python测试代码 在Docker中安装PostgreSQL的ODBC驱动并添加Python测试代码 在Docker中安装MySQL的ODBC驱动并添加Python测试代码 在Docker中安装SQL Server的ODBC驱动并添加Python测试代码 Microsoft.AspNetCore.SignalR.Client中传送用户Token U8二次开发-钉钉集成 U8二次开发CO-基于Net8调用COM对象 .NET Core MemoryCache缓存批量获取Key或者删除 .NET中反射和动态表达式的分析和比较 NLog整合ExceptionLess如何映射当前用户身份 SkiaSharp库在NetCore下跨平台图片操作基础使用方法 NetCore使用SkiaSharp库对给定路径的图片进行大小缩放,要适当考虑等比率缩放,以高度为准,宽度自适应 VS2022下nuget包同步失败,提示: PackageSourceMapping 已启用,未考虑以下源: ** SonarQube-7.7到9.9社区版本默认数据库H2连接方法 使用 pip 出现 Script file ‘C:\Anaconda3\Scripts\pip-script.py‘ is not present 错误解决办法 - pccai 让简易流行的FRP支持Nginx转发SSE“打字效果” 使用LxRunOffline迁移Windows10启用的WSL默认虚拟磁盘位置 MAUI开发迁移AVD默认位置释放C盘空间
Net7升级到Net8相关问题
pccai · 2024-03-04 · via 博客园 - pccai

除了按照网上常规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也少了许多。其它待查问题后续更新中...