Использование .NET 4.0 DLL в Unity3d через COM / SxS? - PullRequest
3 голосов
/ 14 сентября 2011

В попытке упростить мою проблему, я постараюсь сделать ее короткой:

Я использую Pro версию Unity, и у меня есть 2 DLL:

  1. Сборка .NET 3.5 (действующая как COM-клиент)
  2. Сборка .NET 4.0 (с интерфейсом, доступным через COM)

3.5 использует COM для работы с 4.0. Использование сборки 3.5 в приложении Windows работает нормально, она загружает 4.0 dll, используя SxS через Type.GetTypeFromCLSID () или Type.GetTypeFromProgID () (что я подтвердил с помощью SxStrace), и может прекрасно использовать его функциональность. (Приложение Windows упоминает, что оно зависит от DLL 4.0 через манифест, я не регистрирую COM DLL.)

Я пытаюсь использовать .NET 4.0 DLL в Unity. Очевидно, я не могу использовать его напрямую, поскольку текущий вариант Mono, который использует Unity, поддерживает только до 3.5, поэтому я создал сборку 3.5, чтобы быть моим посредником. Я могу использовать сборку 3.5 в единстве, но любой из методов Type, которые я упоминал ранее, генерирует NotImplementedException (s), так как они, очевидно, не поддерживаются Unity (точнее, Mono), так что я нахожусь на потеря.

Есть идеи?

1 Ответ

1 голос
/ 10 июня 2013

Хотя этот вопрос был задан 1 год назад. К сожалению, тактика посредников по-прежнему не работает, невозможно использовать DLL-библиотеки .NET 4.0 в Unity3D, поскольку Mono просто не поддерживает зависимости.Вы можете попытаться удалить любые зависимости 4.0 из dll и скомпилировать их как 3.5, если это возможно для вас.

...