Windows 10 UWP应用集成MySQL遇阻:无法引用指定DLL求解
在Windows 10 UWP应用中使用MySQL的正确姿势
我之前也踩过这个坑,UWP和MySQL的适配确实容易走弯路,你遇到的问题主要是因为旧的Connector/NET版本已经不再适配现代UWP环境,而且手动引用DLL的方式本身就不适合.NET Core/UWP项目。下面给你一步步解决的方案:
为什么找不到MySql.Data.RT.dll?
MySQL Connector/NET的较新版本(大概从8.0系列开始)已经移除了专门针对UWP的RT版本DLL,官网现在提供的包都是基于.NET Standard的,不再单独分RT目录。旧版本可能还有,但不仅难找,而且缺乏安全更新,完全不推荐使用。
正确的解决方案:使用NuGet安装适配的驱动
UWP项目基于.NET Core/.NET Standard,必须使用支持该框架的MySQL驱动,手动引用.NET Framework的DLL肯定会报你遇到的兼容性错误。推荐两种靠谱的选择:
选项1:使用社区维护的MySqlConnector包(更推荐)
这个包对.NET Core/UWP的支持非常友好,更新频繁,兼容性更好:
- 右键你的UWP项目 → 选择「管理NuGet程序包」
- 在「浏览」标签搜索
MySqlConnector,安装最新稳定版本 - 安装完成后,在代码中引用命名空间:
using MySqlConnector; - 测试连接的示例代码:
private async Task TestMySqlConnection() { var connectionString = "server=你的MySQL服务器地址;database=目标数据库;user=用户名;password=密码;"; using (var connection = new MySqlConnection(connectionString)) { try { await connection.OpenAsync(); // 连接成功,这里可以执行查询、插入等操作 Debug.WriteLine("MySQL连接成功!"); } catch (Exception ex) { Debug.WriteLine($"连接失败:{ex.Message}"); } } }
选项2:使用Oracle官方的MySql.Data包
如果你更倾向于官方驱动,确保安装支持.NET Standard的版本:
- 同样在NuGet包管理器中搜索
MySql.Data,选择版本8.0及以上(支持.NET Standard 2.0) - 代码中引用命名空间:
using MySql.Data.MySqlClient; - 连接代码和上面类似,只是把
MySqlConnection换成MySql.Data.MySqlClient.MySqlConnection即可
关键注意事项
- 网络权限配置:在你的UWP项目的
Package.appxmanifest文件中,必须勾选「Internet (Client)」权限(如果需要访问远程服务器),否则应用会被禁止联网。 - 卸载旧引用:先把之前手动添加的所有MySQL相关DLL引用删除,避免版本冲突。
总结
完全可以在UWP应用中使用MySQL,只是不能再用旧的手动引用RT DLL的方式了,通过NuGet安装适配.NET Standard的驱动才是现代UWP项目的正确做法。
内容的提问来源于stack exchange,提问作者Gary Hengeveld
相关产品推荐
相关产品推荐

