为何存在对应DLL仍出现System.Data.SqlClient程序集加载异常?
解决System.Data.SqlClient程序集加载失败问题
遇到FileNotFoundException: 无法加载文件或程序集'System.Data.SqlClient, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'错误,即便已放置DLL仍无法解决,可尝试以下步骤:
- 校验DLL版本:右键已放置的
System.Data.SqlClient.dll,查看属性→详细信息,确认文件版本和产品版本均为4.2.0.0,避免因版本不匹配导致加载失败。 - 确认放置路径:将DLL放到程序的输出目录(如
bin/Debug/netX.x或bin/Release/netX.x),而非项目根目录,.NET程序默认优先从输出目录加载程序集。 - 添加程序集绑定重定向:若使用桌面或Web项目,在
app.config/web.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.2.0.0" newVersion="4.2.0.0" /> </dependentAssembly> </assemblyBinding> </runtime> </configuration>
- 使用NuGet安装依赖:右键项目→管理NuGet程序包,搜索并安装
System.Data.SqlClient4.2.0.0版本,NuGet会自动处理依赖配置,比手动复制DLL更稳定。 - 检查目标框架兼容性:确认项目目标.NET框架版本与
System.Data.SqlClient 4.2.0.0兼容(该版本支持.NET Framework 4.6+、.NET Core 2.0+),过低的框架版本会导致加载失败。 - 清理重建项目:执行清理解决方案后再重建,清除旧缓存文件,确保新DLL被正确复制到输出目录。
内容的提问来源于stack exchange,提问作者user123456
相关产品推荐
相关产品推荐

