.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>确保依赖项复制到输出目录
- 打开
DataBaseWrapper项目对DataBase库的引用属性,将Copy Local设置为True,确保依赖的DLL被复制到Wrapper项目的输出目录。 - 检查
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
相关产品推荐
相关产品推荐

