unity链接mysql报错_[unity3d]链接mysql的Project build出错

本文讲述了在Unity3d项目中使用StriveEngine与MySQL通信时遇到的构建错误。问题出现在发布PC版本和Web版本时,由于.NET版本限制导致的dll不兼容。解决方法是将Unity的API兼容级别设置为.NET 2.0,但此设置不适用于Web版本发布。文章提出了针对Web版本的困境,寻求关于.NET 2.0 Subset的具体信息。
摘要由CSDN通过智能技术生成

在开发unity3d过程中会用到.net的一些类库,但是当你运行的时候发现时没有问题的,但一旦发布问题就出现了,然后摸索尝试解决了问题。

一.问题出现

我们在当前的一个U3D项目中使用了StriveEngine作为通信组件与服务端进行通信,在U3D环境中,编译运行一切正常,但在打包发布(Build)为PC版本可执行文件时,却出现错误:“ArgumentException: The Assembly System.Management is referenced by StriveEngine. But the dll is not allowed to be included or could not be found.”

最初,我以为是签名或者是加密混淆的问题,于是我使用原始编译生成的StriveEngine.dll,问题一样存在。

接着,我再猜测可能是StriveEngine.dll编译时选择平台的问题,于是把目标平台由anycpu更改为x86,重新生成StriveEngine.dll,并且在u3d打包发布也选择x86,如下图所示:

a15f3508c15815edad166517d2341633.png

但是,问题依然存在。

二.解决方案

经过一番折腾,终于发现需要设置一下U3D所使用的.NET版本 -- 点击Player Settings按钮,找到Api Compatibility Level选项,选择".Net 2.0",而非".Net 2.0 Subset",如下图所示:

108af610f035c9e61ff1b63a45786f05.png

这个选项的意思是说,要使用.NET 2.0的完整版本,而非其子集。经过此设置,终于可以打包发布成功。

究其原因,看来是因为StriveEngine所使用的是完整版本.NET 2.0。

三.又现困境

由于我们的游戏会打算发布一个轻量级的Web版本,于是,我们尝试将其打包发布为Web版,god,同样的问题又出现了,而且,在发布Web版本的情况下,Api Compatibility Level是不可选择的。

6517e1b058fd61353ae6a31fbfa67d0a.png

猜测发布Web版本只能使用.Net 2.0 Subset。

四.如何走出困境?

如果发布Web版本就只能使用.Net 2.0 Subset这个猜想是正确的,那么,我想基于.Net 2.0 Subset开发一个StriveEngine.U3D.dll,使其可以被打包发布到各种不通类型的平台。可是,.Net 2.0 Subset 具体指的是哪个子集了?是.NET Compact Framework?还是SilverLight提供的.NET Framework?抑或是其它?望知道的童鞋能留言告诉一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值