.NET 4.6转.NET Core时调用数据层遇Dapper.StrongName加载失败错误
解决.NET Core迁移中Dapper.StrongName找不到的问题
你在把.NET Framework架构的WebAPI迁移到.NET Core时碰到的这个程序集找不到的问题,其实是.NET Core和.NET Framework依赖管理差异导致的常见坑,我来给你一步步捋清楚怎么解决:
核心操作:替换NuGet包
.NET Core环境下,官方推荐使用不带强命名的Dapper包,而非针对.NET Framework设计的Dapper.StrongName。你需要在数据访问层项目中执行以下操作:- 先卸载旧的强命名包:
# 使用Package Manager Console Uninstall-Package Dapper.StrongName # 或者用.NET CLI dotnet remove package Dapper.StrongName - 安装标准的Dapper包:
Install-Package Dapper # 或者用.NET CLI dotnet add package Dapper
- 先卸载旧的强命名包:
检查依赖传递与命名空间
确保逻辑层、WebAPI层要么直接引用了新的Dapper包,要么通过项目引用(依赖数据访问层)自动获取到该依赖。代码里的using Dapper;命名空间不需要修改,因为两个包的命名空间完全一致。清理缓存并重建项目
旧的编译缓存经常会引发奇怪的依赖问题:先右键解决方案选择「清理」,然后手动删除所有项目下的bin和obj文件夹,最后重新生成整个解决方案。移除不必要的绑定重定向
如果你的旧项目app.config/web.config里有针对Dapper.StrongName的绑定重定向配置,在.NET Core项目里一定要删掉这些节点——.NET Core不依赖这种绑定方式,留着反而会引发冲突。统一目标框架版本
确认WebAPI、逻辑层、数据访问层所有项目都设置了相同的.NET Core目标版本(比如.NET 6或.NET 7),避免跨框架引用带来的兼容性问题。
按这些步骤操作后,应该就能解决找不到Dapper.StrongName程序集的问题了。
内容的提问来源于stack exchange,提问作者Craig
相关产品推荐
相关产品推荐

