我想在运行时通过代码使用我的dll。(不将dll放在插件资源上) 所以我在下面写下这段代码:
程序集dll = Assembly.LoadFrom(" D:\ HaoranZhu \ workspace \ UnityProjects \ ViveDRMSDKTest \ Assets \ Plugins \ x86_64 \ vita_api.dll");
但它在Unity控制台中显示错误:
BadImageFormatException:无法加载文件或程序集' D:\ HaoranZhu \ workspace \ UnityProjects \ ViveDRMSDKTest \ Assets \ Plugins \ x86_64 \ vita_api.dll'或其中一个依赖项。尝试加载格式不正确的程序。 System.Reflection.Assembly.LoadFrom(System.String assemblyFile)(at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/Assembly.cs:520) loadExternalDll.Start()(在Assets / TestScripts / loadExternalDll.cs:16)
这里的问题是什么?
答案 0 :(得分:0)
您收到此错误是因为(根据https://msdn.microsoft.com/en-us/library/1009fa28(v=vs.110).aspx):
---- BadImageFormatException ----
assemblyFile 不是有效的程序集;例如,64位进程中的32位程序集。有关详细信息,请参阅例外主题
的 - 或 - 强>
目前已加载公共语言运行库的2.0版或更高版本,并且使用更高版本编译 assemblyFile 。
<强> --- 强>
这意味着当进程为64位时,您正在使用32位程序集,(只需获得64位版本)。
或者,如果您为更高版本的公共语言运行库下载了库。