开发者社区> 技术小美> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

[unity3d]链接mysql的Project build出错

简介:
+关注继续查看

在开发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,如下图所示:

    

但是,问题依然存在。

二.解决方案

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

    

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

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

三.又现困境

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

    

猜测发布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?抑或是其它?望知道的童鞋能留言告诉一下。













本文转蓬莱仙羽51CTO博客,原文链接:http://blog.51cto.com/dingxiaowei/1366371,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【MySQL】你还不会在Docker下安装MySQL主备吗?
那什么时候就要开始考虑搭建主备架构呢, 一方面是随着业务增长,读写请求已经到达了一定的瓶颈时,我们需要考虑,另一方面为了保证数据的完整性,以保证主宕机的时候,可以快速切换。
7 0
mysql安装记录
mysql安装记录
8 0
MySQL安装+配置
首先在MySQL官网上下载安装包Mysql官网下载 解压后选择合适的安装路径一路next安装
8 0
Linux 使用rpm方式安装最新mysql(5.7.22)步骤以及常见问题解决
Linux 使用rpm方式安装最新mysql(5.7.22)步骤以及常见问题解决
8 0
Linux安装MYSQL 并使用图形化界面连接
Linux安装MYSQL 并使用图形化界面连接
25 0
MySql的详细安装说明
MySql的详细安装说明
24 0
Docker 安装 MySQL | 学习笔记
快速学习 Docker 安装 MySQL
14 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
PostgresChina2018_张启程_为什么我们抛弃MongoDB和MySQL,选择PgSQL
立即下载
MySQL Java开发实战
立即下载
MySQL 开发规约实战
立即下载