【发布时间】:2019-08-13 07:33:52
【问题描述】:
我正在尝试在使用Unity 2019.1.13f1 为Hololens 构建的UWP 应用程序中使用MongoDB C# driver (2.8.1)。我读到这个驱动程序(如果我是正确的,它针对.NET 4.x)与UWP 应用程序完全兼容,因为Windows SDK 16299。然而,即使它在Unity Editor 中发挥了作用,但部署到Hololens 时并非如此(我无法连接到我的数据库)。
我尝试使用.NET 4.x API 兼容级别构建项目,并且我已授予该应用所有必要的功能(*InternetClient*, *InternetClientServer*, *PrivateNetworkClientServer*)。
这在运行时触发了这个异常:Unsupported internal call for IL2CPP:Module::GetPEKind
然后,我尝试将API兼容级别更改为.NET Standard 2.0。
这使得上面的异常消失了,但还是不行……
你有什么想法吗?我可能会认为这个驱动与Hololens毕竟不兼容......
提前致谢
编辑
经过多次尝试,我终于得出了这个结论:
- MongoDB C# 驱动程序当前(截至 Unity 2019.1.13f1)与 Hololens 上的
IL2CPP不兼容,因为它试图进行后者不支持的 call(非常特别是在尝试调用new MongoClient())。 - 我无法使用
.NET后端在 Unity 2018.4 上编译我的项目(显然这个后端存在巨大的兼容性问题,这就是 Unity 放弃它的原因)。
老实说,我根本不是UWP 方面的专家,但由于其他人已经设法使这个驱动程序在“正常”UWP 设备上使用 IL2CPP 按预期工作,我猜这可能与Hololens 软件(我知道它使用 Windows 10 的特殊版本)。
【问题讨论】:
-
您是否尝试过使用 .NET 后端而不是 IL2CPP 进行编译?
-
@JuliaSchwarz 这是个好建议!我会尝试一下,看看它是否有效。谢谢!
-
嗯,Unity 似乎在 2019.1 版本(我正在使用的那个)中删除了 .NET 脚本后端,所以我需要找到另一个解决方案...
-
只需做一个快速测试,将一个由 Visual Studio 开发的 UWP 应用程序部署到 HoloLens,它对我来说效果很好。普通的 UWP 对您有用吗?
-
是的,一个普通的 UWP 工作正常,我的应用程序工作正常,除了 MongoDB 部分。我认为这可能与 Unity 使用的 IL2CPP 后端有关......
标签: c# mongodb unity3d hololens