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

从System.Data.SqlClient迁移至Microsoft.Data.SqlClient时遇程序集加载错误,如何解决?

解决System.Memory程序集加载失败问题

针对你遇到的从System.Data.SqlClient迁移到Microsoft.Data.SqlClient、升级.NET Framework到4.8后出现的System.Memory加载错误,可按以下步骤排查修复:

1. 添加程序集绑定重定向

由于Microsoft.Data.SqlClient依赖特定版本的System.Memory,而你安装的NuGet包版本(4.5.5)对应的程序集版本为4.0.1.2,与错误提示的4.0.1.1不匹配,需在项目的app.config中添加绑定重定向,将旧版本请求指向已安装的新版本:

在<configuration>节点下的<runtime>中添加:

<dependentAssembly>
  <assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.2" />
</dependentAssembly>

2. 验证NuGet包引用与复制本地设置

  • 卸载项目中的System.Memory和Microsoft.Data.SqlClient包,删除项目的bin、obj目录清理残留文件后,重新安装最新版本的两个包。
  • 右键项目引用中的System.Memory,查看属性,确保复制本地设置为True,保证DLL会被复制到输出目录。

3. 排查配置文件冲突

遗留项目可能存在旧的绑定规则或第三方组件的版本冲突:

  • 检查app.config中是否已有System.Memory的绑定重定向,若有则合并规则,确保指向正确的新版本。
  • 使用**程序集绑定日志查看器(Fuslogvw.exe)**定位问题根源:
    1. 打开Visual Studio开发者命令提示符,运行fuslogvw.exe。
    2. 在工具中设置日志输出路径,勾选“记录所有绑定失败”。
    3. 运行应用触发错误,查看日志详情,确认是哪个组件在请求旧版本的System.Memory,针对性调整依赖。

4. 统一目标平台与重新构建

  • 确保项目的目标平台(x86/x64/Any CPU)与测试应用一致,平台不匹配可能导致DLL加载失败。
  • 清理整个解决方案,重新生成项目,确保所有依赖文件正确输出到目标目录。

内容的提问来源于stack exchange,提问作者Tom

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 17:28:35