通过COM / SxS在Unity3d中使用.NET 4.0 DLL?

时间:2011-09-14 12:28:54

标签: com unity3d winsxs

为了过度简化我的问题,我会尽量保持简短:

我正在使用Unity的专业版,我有2个DLL:

  1. .NET 3.5程序集(充当COM客户端)
  2. .NET 4.0程序集(通过COM公开接口)
  3. 3.5使用COM来处理4.0。在Windows应用程序中使用3.5程序集工作正常,它使用SxS通过Type.GetTypeFromCLSID()或Type.GetTypeFromProgID()(我已经使用SxStrace确认)加载4.0 dll,并且可以正常使用它的功能。 (Windows应用程序通过清单提到它依赖于4.0 DLL,我没有注册COM DLL。)

    我正在尝试在Unity中使用.NET 4.0 DLL。显然我不能直接使用它,因为Unity使用的Mono目前的风味仅支持3.5,因此我创建了3.5组件作为我的中间人。我能够在团结中使用3.5程序集,但是我之前提到的任何一种Type方法都抛出NotImplementedException(s),因为Unity(或者更确切地说,Mono)显然不支持它们,所以我在损失。

    有什么想法吗?

1 个答案:

答案 0 :(得分:1)

虽然这个问题是在1年前提出的。但是中间人的策略仍然无法使用,因此不可能在Unity3D中使用.NET 4.0 dll,因为Mono不支持依赖关系。 您可以尝试从dll中删除任何4.0依赖项,并将其编译为3.5,如果可以的话。