求助:MySql.Data与UWP 10.0.10586不兼容及连接问题
解决UWP(uap10.0.10586)与MySQL.Data兼容问题的方案
我之前帮不少开发者处理过类似的旧版UWP+MySQL适配问题,结合你的场景,给你几个针对性的解决方案:
方案一:改用社区维护的MySqlConnector替代官方MySQL.Data
官方的MySQL.Data包对旧版UWP(比如10586)的支持一直比较鸡肋,而社区驱动的MySqlConnector专门针对.NET全生态(包括UWP)做了兼容性优化,是目前更可靠的选择:
- 打开NuGet包管理器,搜索并安装
MySqlConnector(安装后可以卸载掉官方的MySQL.Data) - 替换代码中的命名空间:把
using MySql.Data.MySqlClient;改成using MySqlConnector; - 连接字符串可以沿用原有格式,但建议显式关闭SSL(旧UWP的SSL实现和MySQL服务器兼容性差),示例如下:
string connString = "server=你的服务器地址;database=目标数据库名;user=账号;password=密码;SslMode=None;"; - 务必在
Package.appxmanifest中开启**Internet(客户端)**权限,否则模拟器无法访问远程数据库
方案二:调整官方MySQL.Data版本并排查连接配置
如果一定要坚持用官方包,试试以下调整:
- 降级到
MySQL.Data 6.9.12版本(这个版本对UWP 10586的适配比6.10.6更稳定) - 检查连接字符串的关键参数:
- 必须添加
SslMode=None,旧版UWP不支持MySQL默认的SSL验证逻辑 - 确认服务器地址、端口、账号密码无误,且模拟器能正常访问MySQL服务器(本地服务器注意模拟器的网络模式设置)
- 必须添加
- 核对项目平台目标:模拟器默认是x86架构,确保安装的MySQL.Data包包含x86版本(NuGet会自动匹配,但可以手动检查包依赖)
方案三:统一项目版本配置
- 确保UWP项目的最低版本和目标版本都设置为
10.0.10586,不要混合设置不同版本,否则极易出现依赖冲突 - 清理项目缓存:删除
bin和obj文件夹后重新编译,有时候旧编译文件会导致依赖加载异常
另外,你提到连接时出现错误,如果能提供具体的异常信息(比如错误码、堆栈跟踪),可以更精准定位问题,但以上方案应该能覆盖大部分场景。
内容的提问来源于stack exchange,提问作者Cruwiel
相关产品推荐
相关产品推荐

