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

C#编译DLL中System.Data.SqlClient加载失败问题求助

解决System.Data.SqlClient版本0.0.0.0加载异常的方案

1. 排查项目引用方式

  • 右键项目→引用,找到System.Data.SqlClient,查看其属性:
    • 若为GAC(全局程序集缓存)引用,检查复制本地是否设为True——CAD运行环境的GAC可能没有对应版本,必须让依赖DLL随项目输出。
    • 若找不到该引用,说明原项目是隐式依赖,直接改用NuGet包管理更可靠。

2. 安装适配的NuGet包版本

针对.NET Framework 4.7.2,优先选择System.Data.SqlClient 4.8.5(这是适配.NET Framework 4.6.1+的稳定版本,避免选5.x及以上的.NET Core专属版本):

  • 包管理器控制台执行:Install-Package System.Data.SqlClient -Version 4.8.5
  • 或在NuGet包管理器中搜索并安装指定版本。

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

错误显示版本0.0.0.0,核心原因是运行时无法匹配正确的程序集版本,需在配置文件中添加绑定规则:

  • 编辑项目的App.config,在<runtime>节点内加入:
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Data.SqlClient" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.8.5.0" newVersion="4.8.5.0" />
      </dependentAssembly>
    </assemblyBinding>
    
  • 编译后,将生成的[你的DLL名称].config和DLL一起放到CAD加载目录;若CAD有自身配置文件(如AutoCAD的acad.exe.config),也可将这段配置追加进去。

4. 验证输出依赖

  • 检查项目输出目录(bin/Debug或bin/Release),确认System.Data.SqlClient.dll和.pdb文件存在。
  • 若缺失,右键NuGet引用的System.Data.SqlClient→属性,将复制本地设为True,重新编译。

5. 确认CAD的.NET环境

  • 用CAD内置命令验证运行环境版本(如AutoCAD输入(dotnet-version)),确保CAD使用的.NET Framework版本为4.7.2,与项目目标版本一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 07:42:39