将 .NET 4.5 C# DLL 加载到 Unity 2018.2.5 后出现 TypeLoadException

TypeLoadException after loading .NET 4.5 C# DLL into Unity 2018.2.5

我希望能够将摄像头帧从网络摄像头输入到 Unity 中。我使用 MediaFrameReader 和事件侦听器制作了一个 .NET 4.5 C# DLL。这是其他一些用户访问 Hololens 相机框架的实现:

当我将 DLL 导入我的 2018.2.5 Unity 项目时,出现以下错误:

  1. 正在卸载损坏的程序集“....”,此程序集可能会导致运行时崩溃
  2. TypeLoadException: 由于类型加载错误而找不到方法

C#插件在Visual Studio上多次构建成功。此外,我已将 Api 兼容级别(在播放器设置中)正确设置为 .NET 4.x。有什么办法可以解决这个问题?

与此相关的所有其他 SO 答案我已经看过了,但似乎无助于解决问题。感谢大家的帮助。

编辑:https://issuetracker.unity3d.com/issues/unity-fails-to-load-net-4-dot-6-assemblies-with-typeloadexception 是最相关的 post,但没有解决方案。

我有几个可能的解决方案供您探索。

DLL 问题:

解决方法:

注释您的 UWP 代码(使用 DLL 的部分),然后在没有 DLL 的情况下在 UNITY 中构建它。在生成的 UWP 解决方案中,从 nuget 安装包或手动导入 dll,然后取消注释代码并完成开发。这是一个短期 solution.It 会很烦人,因为您多次重新构建解决方案并且必须 comment/uncomment 然后重新添加 dll 等等。

其他可能的解决方案:

您的确切需求

根据您的描述,您确实不需要您引用的 link () 中的所有内容。你需要更简单的版本。我最近为 HoloLens 创建了 MediaCapture 解决方案作为解决方法,因为 Unity 中的 PhotoCapture 在 HoloLens 中不起作用,并且一切正常,无需任何额外的 DLL。我会 post 给你们几个 link 看看是否对你们有帮助:

  1. MediaCapture Unity 和 HoloLens:https://github.com/MSAlshair/HoloLensMediaCapture

这对您来说可能是一个好的开始。您可以将它与您的原始参考结合起来。使用此项目作为起点以确保您的项目构建正确,然后使用您 post 编辑的其他资源中的必要代码来完成您想要的任务。 可能需要下载Unity 2018.2.12f1因为我在2018.2.5没有测试

  1. 媒体捕捉和照片捕捉:Hololens font camera

祝你好运!