【问题标题】:How can I use .NET framework 4.5 in Unity 5如何在 Unity 5 中使用 .NET Framework 4.5
【发布时间】:2017-05-29 02:26:30
【问题描述】:

我正在使用 unity3D 5。我想导入外部 my KinectDB.dll(包括我的带有实体框架的 sql server db 函数。它符合 .NET 4.5 框架)类库要统一。但是统一控制台给了我一个如下所示的错误。我搜索了这个问题好几个小时。但我无法达到完整的解决方案。我该如何解决这个问题?你有什么建议?提前致谢。

提示:我使用 .NET 3.5 框架 创建了一个示例项目。我将它导入统一。在这种情况下,Unity 不会给我一个错误。

  Unhandled Exception: System.Reflection.ReflectionTypeLoadException: The classes in the module cannot be loaded.

  at (wrapper managed-to-native) System.Reflection.Assembly:GetTypes (bool)

  at System.Reflection.Assembly.GetTypes () [0x00000] in <filename unknown>:0 

  at Mono.CSharp.RootNamespace.ComputeNamespaces (System.Reflection.Assembly assembly, System.Type extensionType) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.RootNamespace.ComputeNamespace (Mono.CSharp.CompilerContext ctx, System.Type extensionType) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.GlobalRootNamespace.ComputeNamespaces (Mono.CSharp.CompilerContext ctx) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.Driver.LoadReferences () [0x00000] in <filename unknown>:0 

  at Mono.CSharp.Driver.Compile () [0x00000] in <filename unknown>:0 

  at Mono.CSharp.Driver.Main (System.String[] args) [0x00000] in <filename unknown>:0 

Missing method .ctor in assembly -------\Assets\KinectDB.dll, type System.Runtime.Versioning.TargetFrameworkAttribute
The class System.Runtime.Versioning.TargetFrameworkAttribute could not be loaded, used in KinectDB
Can't find custom attr constructor image: Assets\KinectDB.dll mtoken: 0x0a00000e

【问题讨论】:

    标签: c# entity-framework unity3d unity5


    【解决方案1】:

    您只能等到 Unity 将其捆绑的 Mono 更新到 4.x。它已经在他们的路线图上。随着 Microsoft 将 Mono 运行时从 LGPL 许可到 MIT 并且 Unity 加入 .NET 基金会,这样的平台升级可能会更快到来。

    http://unity3d.com/unity/roadmap

    【讨论】:

    • 我看到很多cmet都在说这个,具体我们会得到什么样的改进?
    • @FLX 对于当前所有基于 Mono 和 .NET 的平台,Unity 是唯一落后的,因此即将从 .NET/Mono 中获得的好处(如 async/await、.NET 标准库)等)不能应用于 Unity。大多数 .NET 库也正在迁移到 .NET 4.5,这意味着您无法在 Unity 上使用它们或它们的最新版本。因此,.NET 基金会下的 Unity/Mono/Microsoft 之间的合作现在至关重要,我相信当务之急是用最新的 Mono 升级 Unity。在那之后,所有的好处都来了。
    • 感谢您的解释。如果还没有看到,你会喜欢这个:blogs.unity3d.com/2016/04/01/unity-joins-the-net-foundation :)
    • @AbleArcher 你能引用它吗?我在路线图中没有看到任何与 C#/Mono/.NET 相关的内容 =(
    • here。在 2017.1.0 (beta) 标题下,有一个脚本运行时升级的要点。
    【解决方案2】:

    是的。这一切都始于阅读文档 - 并意识到 Unity 使用的是相当过时的 .NET 版本。您不能在 Unity 中使用 4.5 库。你可以做的是在一个单独的程序中运行它们并通过网络等与这个程序进行通信 - 但这是很多工作。

    Unity 将来会升级一次。但他们还没有。

    【讨论】:

    • 写webservice是适合这种情况的替代方式吗?
    • 取决于你在做什么。对于某些事情,Web 服务可能太慢了。对于其他事情,他们很好。
    猜你喜欢
    • 2015-05-18
    • 1970-01-01
    • 1970-01-01
    • 2016-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多