在Unity

时间:2017-03-06 06:05:53

标签: c# unity3d dll mono

我想在运行时通过代码使用我的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)

这里的问题是什么?

1 个答案:

答案 0 :(得分:0)

您收到此错误是因为(根据https://msdn.microsoft.com/en-us/library/1009fa28(v=vs.110).aspx):

---- BadImageFormatException ----
assemblyFile 不是有效的程序集;例如,64位进程中的32位程序集。有关详细信息,请参阅例外主题 的 - 或 -
目前已加载公共语言运行库的2.0版或更高版本,并且使用更高版本编译 assemblyFile

<强> ---

这意味着当进程为64位时,您正在使用32位程序集,(只需获得64位版本)。

或者,如果您为更高版本的公共语言运行库下载了库。