Как я могу использовать .NET framework 4.5 в Unity 5

Я работаю с unity3D 5. И я хочу импортировать внешнюю мою KinectDB.dll (включает в себя мои функции базы данных сервера sql с entityframework. И это соответствует .NET 4.5 framework) библиотека классов к единству. Но консоль Unity выдает мне ошибку, как показано ниже. Я искал эту проблему много часов. Но я не могу достичь полного решения. Как я могу это решить? Каковы ваши советы? Заранее спасибо.

Совет. Я создал пример проекта с помощью .NET 3.5 framework. И я импортирую его в единство. 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

person hkaraoglu    schedule 03.04.2016    source источник


Ответы (2)


Вы можете только подождать, пока Unity обновит свой пакет Mono до версии 4.x. Это уже есть в их дорожной карте. Поскольку Microsoft лицензирует среду выполнения Mono из LGPL в MIT, а Unity присоединилась к .NET Foundation, вполне вероятно, что такое обновление платформы может произойти раньше.

http://unity3d.com/unity/roadmap

person Lex Li    schedule 03.04.2016
comment
Я вижу много комментариев по этому поводу, какие конкретно улучшения мы получим? - person FLX; 03.04.2016
comment
@FLX для всех текущих платформ, основанных на Mono и .NET, остается только Unity, поэтому грядущие преимущества .NET/Mono (такие как async/await, стандартная библиотека .NET и т. д.) не могут быть применены к Единству. Кроме того, большинство библиотек .NET переходят на .NET 4.5, что означает, что вы не можете использовать их или их последние версии в Unity. Таким образом, сотрудничество между Unity/Mono/Microsoft в рамках .NET Foundation сейчас имеет решающее значение, и я считаю, что главным приоритетом является обновление Unity до последней версии Mono. После этого наступают все преимущества. - person Lex Li; 04.04.2016
comment
Спасибо за это объяснение. Если вы еще не видели, вам понравится это: блоги .unity3d.com/2016/04/01/unity-joins-the-net-foundation :) - person FLX; 04.04.2016
comment
@AbleArcher Не могли бы вы процитировать это? Я не вижу в дорожной карте ничего, связанного с C#/Mono/.NET =( - person RunninglVlan; 02.06.2017
comment
Посмотрите здесь. Под заголовком 2017.1.0 (бета) есть пункт для обновления среды выполнения сценариев. - person Little Endian; 05.06.2017
comment
Обновите среды выполнения Mono и IL2CPP .NET для поддержки новейших функций и API-интерфейсов .NET. Сюда входит доступ к C# 6 и профилю библиотеки классов .NET 4.6.x. Спасибо, @AbleArche Релиз запланирован на июль. - person RunninglVlan; 06.06.2017

Ага. Все начинается с чтения документации — и осознания того, что Unity использует довольно устаревшую версию .NET. Вы НЕ МОЖЕТЕ использовать библиотеки 4.5 в Unity. Что вы МОЖЕТЕ сделать, так это запустить их в отдельной программе и общаться с этой программой через сеть и т. Д., Но это МНОГО работы.

Однажды в будущем Unity обновится. Но пока нет.

person TomTom    schedule 03.04.2016
comment
Написать веб-сервис - подходящий альтернативный способ для этого случая? - person hkaraoglu; 03.04.2016
comment
Зависит от того, что вы делаете. В некоторых случаях веб-сервисы могут быть слишком — слишком — медленными. Для других вещей они хороши. - person TomTom; 03.04.2016