【问题标题】:Using a .NET 4.0 DLL in Unity3d via COM/SxS?通过 COM/SxS 在 Unity3d 中使用 .NET 4.0 DLL?
【发布时间】:2011-09-14 12:28:54
【问题描述】:

为了简化我的问题,我会尽量简短:

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

  1. .NET 3.5 程序集(充当 COM 客户端)
  2. .NET 4.0 程序集(具有通过 COM 公开的接口)

3.5 使用 COM 与 4.0 一起工作。在 Windows 应用程序中使用 3.5 程序集可以正常工作,它通过 Type.GetTypeFromCLSID() 或 Type.GetTypeFromProgID() 使用 SxS 加载 4.0 dll(我已经通过 SxStrace 确认),并且可以很好地使用它的功能。 (windows 应用程序通过清单提到它依赖于 4.0 DLL,我没有注册 COM DLL。)

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

有什么想法吗?

【问题讨论】:

    标签: com unity3d winsxs


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2012-05-18
      • 2012-08-16
      • 2010-09-18
      • 1970-01-01
      • 2018-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-28
      相关资源
      最近更新 更多