如何将 MySql 连接器导入 Unity 项目?
How do I import MySql Connector into Unity Project?
- 我尝试将基本 dll 放入 unity 的资产文件夹中 - 结果:"blah blah will cause Unity to Crash Error."
- 我试过手动添加引用 - 结果:只要编辑器刷新,Unity 就会刷新它的引用,所以毫无价值。
- 我已经尝试使用 NuGet 安装 - 结果:最接近成功,因为它处理所有依赖项等等,但我得到:Assets/Scripts/Developing/TalkToDB.cs(3,7):错误 CS0246:类型或命名空间找不到名称“MySql”。您是否缺少程序集参考?
它是 "Use NuGet then copy the dll into the Assets?" 的某种组合还是类似的冗余?因为那是我得到的最好的猜测。
此外,我已经尝试了几个旧版本的 NuGet 包,但都无济于事。
同样,MySql.Data 是 列在 "Assembly-CSharp" 的参考文献下
而我的Unity设置为4.X framework 使用Unity最新的2018.2.5f1 (64bit)
(我真的希望我不必为了这个工作而放弃 4.x...我会错过属性的初始化值..)
幸运的是我遇到了这个:
How to get MySql Connector/Net Working with Unity 2017
以及关于安全问题。我的关键是 none 我的会话应该从 .NET 持久化 - 将有 高级 PHP 脚本,用于更改数据和任何与提升权限相关的内容。
参考:Why you shouldn’t connect your mobile application to a database
除此之外,
Exceptions to the rule.
"Some database vendors may have provided drivers to connect to remote databases, but as yet I’m not aware of any.
Other exceptions include ODBC connectivity. For example, I’ve heard of developers being able to (or at least trying to) connect to MySQL databases using JDBC when developing applications in Java. This is not actually quite the same as connecting directly using a binary driver, however, it comes close..."
- 2
这正是我要做的,使用 MySql Connector to talk to MySql drivers (which I'm too tired at the moment to recall the name of(也许它是基于 ODBC 的?我不记得了。因此 Google。大声笑))
所以总而言之,使用顶部提供的link,Unity 2018可以兼容最新的(截至此post)MySql Connector(s).
任何资产文件夹必须包含:System.Data.dll & MySql.Data.dll(仅此而已)
不需要 NuGet。
但是报错信息:"Loading script assembly 'Assets/Plugins/MySql/System.Data.dll' failed!"
到目前为止,它显然无法像 Unity 之外的普通 C# 那样从 app.config 引用 connectionString。
话虽如此,我正在努力寻找 Unity 的 app.config 实现或等效替代方案。
更新:
除了 Unity 中的几个恼人的 dll 加载错误之外没有任何影响 - 除了让我恼火和浪费几个字节的 RAM 一秒钟(哈哈,你知道。);
一切正常,我记得我不关心将我的应用程序直接连接到我的数据库的原因是因为用户将拥有的唯一权限是执行权限,因此所有过程都将存储在服务器上(通过存储过程),从而保护即使咳咳当咳咳咳咳,用户决定"de-compile"(甚至是一个词。 ..? 嘿)我的申请。
最终更新:
正如我 posted here;
It took me a week to finally figure it out...
You need to use:
I18N.dll
I18N.West.dll
I18N.*.dll (Optional, they are region specific)
System.Data.dll
from C:\Program Files\Unity\Editor\Data\Mono\lib\mono.0
NOT the BleedingEdge path. Then it will work without errors [And in Builds]...
confirmed in the latest Unity 2018.2.14f1
Place into the Assets folder - Also the project needs to be set to .Net 4.0
- 我尝试将基本 dll 放入 unity 的资产文件夹中 - 结果:"blah blah will cause Unity to Crash Error."
- 我试过手动添加引用 - 结果:只要编辑器刷新,Unity 就会刷新它的引用,所以毫无价值。
- 我已经尝试使用 NuGet 安装 - 结果:最接近成功,因为它处理所有依赖项等等,但我得到:Assets/Scripts/Developing/TalkToDB.cs(3,7):错误 CS0246:类型或命名空间找不到名称“MySql”。您是否缺少程序集参考?
它是 "Use NuGet then copy the dll into the Assets?" 的某种组合还是类似的冗余?因为那是我得到的最好的猜测。
此外,我已经尝试了几个旧版本的 NuGet 包,但都无济于事。 同样,MySql.Data 是 列在 "Assembly-CSharp" 的参考文献下 而我的Unity设置为4.X framework 使用Unity最新的2018.2.5f1 (64bit) (我真的希望我不必为了这个工作而放弃 4.x...我会错过属性的初始化值..)
幸运的是我遇到了这个:
How to get MySql Connector/Net Working with Unity 2017
以及关于安全问题。我的关键是 none 我的会话应该从 .NET 持久化 - 将有 高级 PHP 脚本,用于更改数据和任何与提升权限相关的内容。
参考:Why you shouldn’t connect your mobile application to a database
除此之外,
Exceptions to the rule.
"Some database vendors may have provided drivers to connect to remote databases, but as yet I’m not aware of any.
Other exceptions include ODBC connectivity. For example, I’ve heard of developers being able to (or at least trying to) connect to MySQL databases using JDBC when developing applications in Java. This is not actually quite the same as connecting directly using a binary driver, however, it comes close..." - 2
这正是我要做的,使用 MySql Connector to talk to MySql drivers (which I'm too tired at the moment to recall the name of(也许它是基于 ODBC 的?我不记得了。因此 Google。大声笑))
所以总而言之,使用顶部提供的link,Unity 2018可以兼容最新的(截至此post)MySql Connector(s).
任何资产文件夹必须包含:System.Data.dll & MySql.Data.dll(仅此而已)
不需要 NuGet。
但是报错信息:"Loading script assembly 'Assets/Plugins/MySql/System.Data.dll' failed!" 到目前为止,它显然无法像 Unity 之外的普通 C# 那样从 app.config 引用 connectionString。 话虽如此,我正在努力寻找 Unity 的 app.config 实现或等效替代方案。
更新:
除了 Unity 中的几个恼人的 dll 加载错误之外没有任何影响 - 除了让我恼火和浪费几个字节的 RAM 一秒钟(哈哈,你知道。); 一切正常,我记得我不关心将我的应用程序直接连接到我的数据库的原因是因为用户将拥有的唯一权限是执行权限,因此所有过程都将存储在服务器上(通过存储过程),从而保护即使咳咳当咳咳咳咳,用户决定"de-compile"(甚至是一个词。 ..? 嘿)我的申请。
最终更新:
正如我 posted here;
It took me a week to finally figure it out...
You need to use:
I18N.dll I18N.West.dll I18N.*.dll (Optional, they are region specific) System.Data.dll
from C:\Program Files\Unity\Editor\Data\Mono\lib\mono.0
NOT the BleedingEdge path. Then it will work without errors [And in Builds]... confirmed in the latest Unity 2018.2.14f1 Place into the Assets folder - Also the project needs to be set to .Net 4.0