.NET 8 Preview7中IEmailSender类型加载失败的解决问询
.NET 8 Preview7 中 Identity IEmailSender 问题解决指南
问题本质
.NET 8 Preview7 对 Identity 组件的包结构做了调整,IEmailSender 的依赖包和引用逻辑发生变化,错误的包引用会导致找不到接口或运行时类型加载失败。
解决步骤
安装正确的 NuGet 包
卸载错误安装的Microsoft.Extensions.Identity.Core,安装版本匹配的Microsoft.AspNetCore.Identity.UI(版本号需为 8.0.0-preview.7.*),这个包包含 Identity UI 相关的所有服务接口,包括IEmailSender。修正命名空间引用
直接使用using Microsoft.AspNetCore.Identity.UI.Services;,无需修改命名空间,只要包安装正确,智能感知就能识别到IEmailSender。删除手动编写的接口
手动编写的IEmailSender会与框架内置接口冲突,引发运行时类型加载异常,必须删除自定义的接口实现,改用官方包提供的接口。验证 AddDefaultUI() 配置
代码中的.AddDefaultUI()属于Microsoft.AspNetCore.Identity.UI包的扩展方法,确认包安装后该方法正常可用,现有代码中的 TokenProvider 设置无需额外调整。
是否需要等待后续预览版?
不需要。这是包依赖配置错误导致的问题,而非框架本身的 Bug,按照上述步骤调整即可解决,无需等待新版本。
内容的提问来源于stack exchange,提问作者mz1378
相关产品推荐
相关产品推荐

