如何使Unity3D 2018(或更高版本)与MongoDB C#驱动程序一起使用?

时间:2019-04-26 13:38:11

标签: mongodb unity3d

我试图让Unity3D与MongoDB一起工作,但是我遇到了太多的版本兼容性问题。

我的Unity带有Framework版本4.6.1。从NuGet软件包管理器下载的C#驱动程序2.8.0。 MongoDB.Driver程序包具有两个netstandard1.5和net452文件夹。 MongoDBDriver具有net452和netstandard1.5。同样,还有MongoDB.driver.Core.2.8.0,Dnsclient和MongoDB.Driver.GridFS,它们具有框架特定的.dll的多个版本。 我的Unity设置为.Net 4.x(脚本运行时版本)和.Net标准2.0 API兼容性。

使用这些,编写脚本时无法识别MongoDB名称本身。

我从GitHub(2.8.0)下载了C#驱动程序代码,并重新构建了它。复制了.dll的net 1.5版本,但是它也不起作用。

我从https://drive.google.com/file/d/16cLVJi0VZpplSS8MDnRcUeVnYuvxypBm/view中提取了.DLL。它运行良好(具有运行时版本.Net 3.5和API兼容标准2.0)。但是由于“未知主机”而失败,可能是由于与MongoDB.Driver.core使用的Dnsclient的兼容性问题。

请让我知道是否有人知道正确的版本组合或构建过程,以及要在MongoDB C#驱动程序代码中修改的特定代码-使其与Unity3D一起使用。

我在下面的链接中看到了关于typeload异常的答案。我也面对过。但这并不能解决我的问题。 C# mod dependency throws 'TypeLoadException' when instantiated?

2 个答案:

答案 0 :(得分:1)

因此,现在再次进行解释: 我已经弄清楚了如何在.Net 4.x中运行MongoDb。 (已测试Unity 18.3和19.1) 您必须将这些dll包含在Plugins文件夹中:

DnsClient.dll  
MongoDB.Bson.dll  
MongoDB.Driver.Core.dll  
MongoDB.Driver.dll  
System.Buffers.dll  

要连接到数据库(替换用户名,密码,DATABASE_NAME和localhost(仅本地主机,如果您在其他地方托管数据库)):

using MongoDB.Driver;

private const string MONGO_URI = "mongodb://username:password@localhost:27017";
private const string DATABASE_NAME = "testDatabase";
private MongoClient client;
private IMongoDatabase db;

client = new MongoClient(MONGO_URI);
db = client.GetDatabase(DATABASE_NAME);

您可以在我的github上下载dll:https://github.com/Julian23517/Unity-mongo-csharp-driver-dlls,我尝试使其保持最新状态。

答案 1 :(得分:0)

首先:从以下链接下载驱动程序:http://ge.tt/7xQdxUj2
适用于Unity 4或5的1.11.0。推荐! 该驱动程序需要.NET 2.0 API兼容级别,并且不适用于.NET 2.0子集。

然后您可以从此存储库中获取更多信息:
https://github.com/janfiess/unity-mongodb