/ / Usando uma DLL do .NET 4.0 no Unity3d via COM / SxS? - com, unity3d, winsxs

Usando uma DLL do .NET 4.0 no Unity3d via COM / SxS? - com, unity3d, winsxs

Na tentativa de simplificar o meu problema, vou tentar resumir:

Eu estou usando a versão pro do Unity, e eu tenho 2 DLLs:

  1. Um conjunto .NET 3.5 (agindo como um cliente COM)
  2. Um conjunto .NET 4.0 (com uma interface exposta via COM)

O 3.5 usa COM para trabalhar com o 4.0. Usando o assembly 3.5 em um aplicativo do Windows funciona bem, ele carrega a dll 4.0 usando SxS via Type.GetTypeFromCLSID () ou Type.GetTypeFromProgID () (que eu confirmei com SxStrace), e pode usá-lo da funcionalidade muito bem. (O aplicativo do windows menciona a dependência do 4.0 DLL através de um manifesto, eu não estou registrando a DLL COM.)

Eu estou tentando usar o .NET 4.0 DLL no Unity. Obviamente eu não posso usá-lo diretamente, já que o sabor atual do Mono que o Unity usa suporta apenas até 3.5, então eu criei o assembly 3.5 para ser meu intermediário. Eu sou capaz de usar o assembly 3.5 bem em unidade, mas também dos métodos Type que eu mencionei antes de lançar NotImplementedException (s), como aparentemente eles não são suportados pelo Unity (ou melhor, Mono), então eu estou com uma perda.

Alguma ideia?

Respostas:

1 para resposta № 1

Embora esta pergunta foi feita há 1 ano ..infelizmente a tática de intermediário ainda não funciona, não é possível usar dlls do .NET 4.0 dentro do Unity3D, já que o Mono simplesmente não suporta as dependências. Você poderia tentar remover quaisquer dependências 4.0 da dll e compilá-las como 3.5, se isso for possível para você.