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

.NET 7控制台项目引用.NET 4.7库遇System.Data.SqlClient找不到错误

.NET 7 控制台引用.NET 4.7库时System.Data.SqlClient找不到的解决方案

针对你遇到的.NET 7控制台应用CustomizedTelegramBot通过.NET Standard 2.0 wrapper引用.NET 4.7库DataBase时,出现System.Data.SqlClient文件找不到的问题,以下是可行的解决步骤:

  • 安装对应NuGet包
    .NET Framework中System.Data.SqlClient是内置组件,但.NET 5+(包括.NET7)需要通过NuGet安装。直接在CustomizedTelegramBot项目中安装兼容版本的包,推荐版本4.8.5(同时支持.NET Standard 2.0和.NET 7):

    Install-Package System.Data.SqlClient -Version 4.8.5
    

    也可以通过Visual Studio的NuGet包管理器搜索安装。

  • 配置程序集绑定重定向
    错误中出现版本号0.0.0.0,说明存在程序集版本解析冲突。在CustomizedTelegramBot项目中新建或修改app.config文件,添加绑定重定向规则:

    <configuration>
      <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>
      </runtime>
    </configuration>
    
  • 确保依赖项复制到输出目录

    1. 打开DataBaseWrapper项目对DataBase库的引用属性,将Copy Local设置为True,确保依赖的DLL被复制到Wrapper项目的输出目录。
    2. 检查CustomizedTelegramBot项目对DataBaseWrapper的引用,确认PrivateAssets未设置为all(默认依赖是自动传递的,若被修改需调整)。
  • 手动复制缺失DLL(兜底方案)
    如果上述方法无效,找到.NET 4.7环境下的System.Data.SqlClient.dll(可从.NET Framework安装目录或DataBase项目的输出目录获取),手动复制到CustomizedTelegramBot项目的bin/Debug/net7.0(或Release对应目录)中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 20:55:19