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

时间:2018-10-22 18:41:59

标签: unity3d dll .net-4.5

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

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

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

C#插件在Visual Studio上成功构建了许多次。另外,我已经将Api兼容性级别(在播放器设置中)正确设置为.NET4.x。对此有什么解决办法?

与此相关的所有其他SO答案我都已经看过了,但似乎并没有解决问题。感谢您的所有帮助。

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

1 个答案:

答案 0 :(得分:1)

我几乎没有可供您探索的解决方案。

DLL问题:

解决方法:

注释您的UWP代码(使用DLL的部分),然后在不带DLL的UNITY中构建它。在生成的UWP解决方案中,从nuget安装软件包或手动导入dll,然后取消注释您的代码并完成开发。这是一个短期解决方案。当您多次重新构建解决方案并不得不注释/取消注释然后重新添加dll时,这将很烦人。

其他可能的解决方案:

Failed to run reference rewriter with command error with unity error when adding a DLL to the assets folder

您的确切需求

根据您的描述,您实际上并不需要引用的链接(Hololens - Access Camera Frames)中的所有内容。您需要更简单的版本。我最近为HoloLens创建了MediaCapture解决方案,这是一种解决方法,因为Unity中的PhotoCapture在HoloLens中不起作用,并且在没有任何其他DLL的情况下一切正常。我将为您发布一些链接,以查看它是否对您有帮助:

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

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

  1. MediaCapture和图片捕捉:Hololens font camera

祝你好运!