You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 6中使用MediatR时出现Could not load type 'MediatR.ServiceFactory'错误求解

解决方案:MediatR版本不兼容导致的类型加载错误

这个错误的核心原因是MediatR主包与依赖注入扩展包版本不匹配:你使用了MediatR 12.0.0,但配套的MediatR.Extensions.Microsoft.DependencyInjection是11.0.0,两个版本的API存在兼容性差异,导致扩展包无法找到MediatR 12.0.0中的ServiceFactory类型。

以下是两种可行的修复方案:

方案一:升级DI扩展包至匹配MediatR 12.0.0的版本

  1. 卸载当前的MediatR和DI扩展包:
    Uninstall-Package MediatR
    Uninstall-Package MediatR.Extensions.Microsoft.DependencyInjection
    
  2. 安装与MediatR 12.0.0配套的DI扩展包版本:
    Install-Package MediatR -Version 12.0.0
    Install-Package MediatR.Extensions.Microsoft.DependencyInjection -Version 12.0.0
    
    注:12.x版本的DI扩展包并未被弃用,你可以直接安装使用。

方案二:降级MediatR至与11.0.0 DI扩展包兼容的版本

如果你坚持使用11.0.0的DI扩展包,可以将MediatR主包降级到11.0.0:

  1. 卸载当前的MediatR包:
    Uninstall-Package MediatR
    
  2. 安装MediatR 11.0.0版本:
    Install-Package MediatR -Version 11.0.0
    

额外检查

  • 确认项目中没有其他第三方包依赖了旧版本的MediatR,避免出现隐性版本冲突。可以通过NuGet包管理器的"已安装"标签查看所有依赖包的版本。
  • 你的注册代码builder.Services.AddMediatR(Assembly.GetExecutingAssembly());在版本匹配后是完全有效的,无需修改。

内容的提问来源于stack exchange,提问作者Andres Guillen Hernandez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 15:48:30