Использование.NET 4.0 DLL в Unity3d через COM/SxS?

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

Я использую 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 упоминает, что это зависимость от 4.0 DLL через манифест, я не регистрирую COM DLL.)

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

Есть идеи?

1 ответ

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

Другие вопросы по тегам