【问题标题】:How to connect SQL Server Database with Unity3D?如何将 SQL Server 数据库与 Unity3D 连接?
【发布时间】:2019-06-10 00:36:00
【问题描述】:

我的英语不好,但我正在尽力描述我的问题。我从

复制了 I18N.dll、I18N.CJK.dll、I18N.West.dll 和 System.Data.dll

D:\Program Files\Unity\Editor\Data\Mono\lib\mono\2.0,

但很快出现如下错误:

错误 CS1703:已导入具有相同标识的多个程序集: 'D:\GSS Project\Assets\Plugins\System.Data.dll' 和 'D:\Program Files\Unity\Editor\Data\MonoBleedingEdge\lib\mono\4.7.1-api\System.Data.dll'。删除重复引用之一。

而且,同样的异常发生在另一个目录中:

D:\Program Files\Unity\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\

当时为了解决这个问题,我把两个目录下的System.Data.dll都去掉了,然后就可以在Visual Studio 2017中使用命名空间System.Data了。但是当我使用System.Data.ConnectionState时,还有一个错误:

Assets\Scripts\DBConnection.cs(39,35):错误 CS0433:“System.Data,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”和“netstandard”中都存在“ConnectionState”类型版本=2.0.0.0,文化=中性,PublicKeyToken=cc7b13ffcd2ddd51'

尝试了很多方法,发现如果输入了

Edit --> Project Settings --> Player --> Other Settings --> Configuration --> Api Compatibility Level

并将 .Net Standard 2.0 转换为 .Net 4.x,可以避免该错误。 但是这种方法对吗?这样做之后我仍然无法访问数据库,因为发生了许多异常(大多数是关于SqlConnection)。

我的方法可能有很多问题,但是谁能告诉我正确的方法是什么?

非常感谢。

【问题讨论】:

  • 首先,这非常危险,您正在授予不受信任的应用程序对您的数据库的完全访问权限。您通常会创建一个 API 并将其连接到数据库而不是 Unity 应用程序。其次,Mono 不支持 SQL Server

标签: c# sql-server unity3d


【解决方案1】:

正如cmets中的用户所说,使用dll直接连接并不安全,使用php互连更安全更好。

(特别是如果您正在考虑在WEBGL平台上发布,您将在构建游戏后难以使sql连接正常工作,这就是我目前卡住的地方)

话虽如此,

你得到这个异常是因为

“系统……”

存在两次,您的资产中不需要 system.Data.dll。

擦除 System.Data.dll ,您只需要现有的 I18N 文件和

MYSQL.data.dll 、GoogleProtofub 和 bouncyCasteCrypto。

同时将 NET 版本改回 4X.V2。

最后,您可以从 MYSQL 官方网站找到 mysql 连接器/NET 文件。

我希望这会有所帮助。让我知道任何其他错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-22
    • 1970-01-01
    • 1970-01-01
    • 2016-08-16
    相关资源
    最近更新 更多