.NET Framework4.8下DbProviderFactories无法识别MySQL Connector 8.0.33
解决.NET Framework 4.8中MySQL Connector 8.0.33无法被DbProviderFactories识别的问题
问题背景
基于.NET Framework 4.8开发的应用,通过DbProviderFactories.GetFactoryClasses()获取已安装的数据库提供程序时,MySQL Connector 8.0.25能正常被识别,但升级至8.0.33版本后,该提供程序不再出现在列表中。
已尝试的无效操作
- 在app.config中手动添加DbProviderFactories配置项,问题未解决
- 调用
DbProviderFactories.GetFactory("MySql.Data.MySqlClient")时,抛出“连接器未安装”异常(实际已安装) - 调整配置后,
GetFactoryClasses()能识别到8.0.33版本,但调用GetFactory(dbProvider.InvariantName)时抛出异常:System.Configuration.ConfigurationErrorsException: 'Failed to find or load the registered .Net Framework Data Provider.' - 将MySql.Data.dll复制到应用bin目录、手动注册至GAC,均未解决问题
解决方案
1. 确认配置版本和公钥正确性
- 右键MySql.Data.dll→属性→详细信息,核对版本号是否与app.config中
Version字段完全一致(部分8.0.33版本的dll版本为8.0.33.0而非8.0.33.1,需严格匹配) - 使用命令
sn -T MySql.Data.dll获取公钥令牌,确保与配置中的PublicKeyToken=c5687fc88969c44d一致(MySQL官方组件的公钥令牌通常为此值,但需验证)
2. 清理machine.config中的旧注册
旧版本MySQL Connector可能在系统machine.config中留下残留注册,导致版本冲突:
- 打开对应.NET Framework版本的machine.config文件:
- 32位:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config - 64位:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config
- 32位:
- 查找
<DbProviderFactories>节点,删除所有包含MySql.Data.MySqlClient的旧注册项 - 保存文件后重启应用
3. 修正app.config配置(先移除再添加)
在app.config中先移除可能存在的旧注册,再添加8.0.33版本的配置:
<system.data> <DbProviderFactories> <remove invariant="MySql.Data.MySqlClient" /> <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=8.0.33.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> </DbProviderFactories> </system.data>
注意替换Version为实际dll的版本号
4. 验证程序集加载与依赖
- 确保应用bin目录中只有8.0.33版本的MySql.Data.dll及相关依赖(如MySqlConnector.dll),无旧版本文件残留
- 使用Process Monitor跟踪应用启动时的程序集加载情况,排查是否存在加载路径错误或依赖缺失
5. 确认GAC注册有效性
- 打开管理员权限的命令提示符,执行
gacutil /l MySql.Data查看GAC中注册的版本,确认8.0.33版本已存在 - 若未注册,执行
gacutil /i MySql.Data.dll手动注册(注意匹配应用平台:32位dll注册到32位GAC,64位则对应64位)
内容的提问来源于stack exchange,提问作者zaidabuhijleh
相关产品推荐
相关产品推荐

