Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Unity 5中使用.NET framework 4.5_C#_Entity Framework_Unity3d_Unity5 - Fatal编程技术网

C# 如何在Unity 5中使用.NET framework 4.5

C# 如何在Unity 5中使用.NET framework 4.5,c#,entity-framework,unity3d,unity5,C#,Entity Framework,Unity3d,Unity5,我正在与unity3D 5合作。我想将外部我的KinectDB.dll(包括我的带有entityframework的sql server db函数。它是按照.NET 4.5 framework)类库导入unity的。但是unity控制台给了我一个错误,如下所示。我找了好几个小时这个问题。但我无法找到完整的解决方案。我怎样才能解决这个问题?你有什么建议?提前谢谢 提示:我用.NET3.5框架创建了一个示例项目。我把它导入到团结中。在这种情况下,Unity不会给我一个错误 Unhandled E

我正在与unity3D 5合作。我想将外部我的KinectDB.dll(包括我的带有entityframework的sql server db函数。它是按照.NET 4.5 framework)类库导入unity的。但是unity控制台给了我一个错误,如下所示。我找了好几个小时这个问题。但我无法找到完整的解决方案。我怎样才能解决这个问题?你有什么建议?提前谢谢

提示:我用.NET3.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
未处理的异常:System.Reflection.ReflectionTypeLoadException:无法加载模块中的类。
at(包装器管理到本机)System.Reflection.Assembly:GetTypes(bool)
位于:0中的System.Reflection.Assembly.GetTypes()[0x00000]处
位于:0中的Mono.CSharp.RootNamespace.ComputeNamespaces(System.Reflection.Assembly,System.Type extensionType)[0x00000]
位于:0中的Mono.CSharp.RootNamespace.ComputeNamespace(Mono.CSharp.CompilerContext ctx,System.Type extensionType)[0x00000]
位于:0中的Mono.CSharp.GlobalRootNamespace.ComputeNamespaces(Mono.CSharp.CompilerContext ctx)[0x00000]
在0中的Mono.CSharp.Driver.LoadReferences()[0x00000]处
在0中的Mono.CSharp.Driver.Compile()[0x00000]处
在:0中的Mono.CSharp.Driver.Main(System.String[]args)[0x00000]处
程序集中缺少方法.ctor-----\Assets\KinectDB.dll,类型为System.Runtime.Versioning.TargetFrameworkAttribute
无法加载在KinectDB中使用的类System.Runtime.Versioning.TargetFrameworkAttribute
找不到自定义属性构造函数映像:Assets\KinectDB.dll mtoken:0x0a00000e

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


一旦在未来统一将升级。但是他们还没有。你只能等到Unity将其捆绑的Mono升级到4.x。这已经在他们的路线图上。使用微软从LGPL到MIT和UNIONEXION .NET基金会的Muno运行时,很可能这样的平台升级可能会更早。


Write webservice是这种情况下合适的替代方法?取决于您正在做什么。在某些方面,web服务可能太慢了。在其他方面,他们还可以。我看到很多关于这方面的评论,具体来说,我们会得到什么样的改进?@FLX对于目前所有基于Mono和.NET的平台,Unity是唯一落后的,因此.NET/Mono即将带来的好处(如async/Wait、.NET标准库等)不能应用于Unity。此外,大多数.NET库正在迁移到.NET 4.5,这意味着您无法在Unity上使用它们或它们的最新版本。因此,在.NET基金会下UNION/MONO/微软之间的协作是至关重要的,我认为最重要的是用最新的MUNO升级Unity。之后所有的好处都来了。谢谢你的解释。如果还没有看到,你会喜欢这样::)@AbleArcher你能引用一下吗?我在roadmap=(看,在2017.1.0(beta版)标题下,没有看到任何与C#/Mono/.NET相关的内容。脚本运行时升级有一个要点。