DLLNotFoundException-Unity3D插件

DLLNotFoundException-Unity3D插件,dll,plugins,unity3d,Dll,Plugins,Unity3d,我在一些windows机器上的独立版本中遇到了DLLNotFoundException,其他的运行得很好。Dll文件肯定在plugins文件夹中,也将其复制到projectName\u数据文件夹中,但没有区别 还尝试将dll添加到streaming assets文件夹,并如上所述设置新路径(Environment.SetEnvironmentVariable),但也没有成功 使用Unity 4.5.5 btw 任何帮助都将不胜感激 < P>我发现问题是玩家需要安装VisualC++ +可重新

我在一些windows机器上的独立版本中遇到了DLLNotFoundException,其他的运行得很好。Dll文件肯定在plugins文件夹中,也将其复制到projectName\u数据文件夹中,但没有区别

还尝试将dll添加到streaming assets文件夹,并如上所述设置新路径(Environment.SetEnvironmentVariable),但也没有成功

使用Unity 4.5.5 btw

任何帮助都将不胜感激


< P>我发现问题是玩家需要安装VisualC++ +可重新分配,这里可以下载:

我发现,在某些情况下,DllNotFoundException错误具有误导性。Unity对此不负责任,因为当dll加载出现问题时,Unity只是在内存中没有该dll,并告诉您这一点

正如Keysosaurus所言,VisualC++可重新分配必须安装在您的独立版本中,并且在大多数情况下,这解决了问题,但也有其他原因,比如第三方依赖。 如果您使用的是第三方库,则还必须将所有需要的DLL或SOs复制到可执行文件的文件夹中。

例如,我正在使用OpenNI 2,在构建时,我会立即将C:\Program files(x86)\OpenNI2\Redist文件夹中的所有文件复制到包含.exe的文件夹中。不这样做会导致DllNotFoundException

另外,不要忘记DLL(和SOs)必须与目标体系结构相匹配,因此,如果目标是x64(64位),则DLL也必须是x64,如果尝试使用x86(32位)DLL,则统一性将被混淆,不会加载,从而导致相同的错误


作为旁注,请记住Unity 5有32位和64位版本。为了在Unity Editor中运行游戏,所有第三方库必须同时存在于x86和x64中(在Unity的常规文件夹中),或者至少存在于与Unity Editor的体系结构相匹配的库中。

最近的问题非常类似: