.NET6类库无法加载Microsoft.EntityFrameworkCore6.0如何解决
修复方案
这个报错是EF Core程序集版本匹配失败导致的,按以下步骤逐一排查即可解决:
- 修正引用方式:不要手动选择类库bin目录下的dll文件添加引用。将类库项目加入当前解决方案,添加引用时直接选择「解决方案」分类下的对应类库项目,确保NuGet依赖可以正常传递到宿主项目。
- 统一EF Core版本:打开类库、宿主项目的csproj文件,所有
Microsoft.EntityFrameworkCore开头的NuGet包(包括数据库提供器、设计时工具等相关包)版本必须完全统一,全部设置为6.0.6,禁止不同项目引用不同6.0.x小版本。
包引用写法参考:<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.6" /> <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.6" /> - 校验目标框架一致性:确认宿主项目的目标框架为.NET 6,和类库的目标框架完全匹配,不允许出现类库是.NET 6、宿主是更低版本.NET Core/.NET Framework的跨框架引用情况。
- 清理错误配置:检查宿主项目根目录下的
app.config、web.config文件,如果存在针对Microsoft.EntityFrameworkCore的bindingRedirect绑定重定向规则,直接删除相关节点。关闭开发工具后手动删除所有项目的bin、obj文件夹,重新打开解决方案执行全量生成。 - 验证输出文件:生成完成后打开宿主项目的输出目录(默认路径为
bin/Debug/net6.0/),检查目录下是否存在Microsoft.EntityFrameworkCore.dll,右键查看文件属性确认版本号为6.0.6。如果该文件缺失,直接在宿主项目上手动安装同版本的EF Core NuGet包即可。
内容的提问来源于stack exchange,提问作者Greybeard
相关产品推荐
相关产品推荐

