我在某些Windows机器上的独立构建中遇到DLLNotFoundException,其他工作正常。 Dll文件肯定在plugins文件夹中,也将它复制到projectName_Data文件夹中但没有区别。
还尝试将dll添加到流媒体资源文件夹并设置新路径(Environment.SetEnvironmentVariable),但不起作用。
使用Unity 4.5.5 btw
任何帮助都将非常感谢!!!
答案 0 :(得分:1)
我发现错误 DllNotFoundException 在某些情况下是非常误导的。团结并不应该归咎于此,因为当dll加载出现问题时,Unity根本就没有内存中的dll并告诉你。
正如Keysosaurus所说,必须安装Visual C ++ Redistributable以使您的独立版本能够正常工作,并且在大多数情况下,这可以解决问题,但可能还有其他原因,例如第三方依赖。
如果您使用的是第三方库,那么您还必须将所有需要的DLL或SO复制到您的可执行文件夹中。
例如我正在使用OpenNI 2,当我构建时,我立即将所有文件从 C:\ Program Files(x86)\ OpenNI2 \ Redist 文件夹复制到包含.exe的文件夹。不执行此操作会导致 DllNotFoundException 。
另外请不要忘记DLL(和SO)必须与您定位的体系结构相匹配,因此如果您的目标是x64(64位),那么您的DLL也必须是x64,如果您尝试使用x86(32) bit)DLL Unity会被混淆,并且不会加载它会给你带来同样的错误。
作为旁注,请记住Unity 5有32位和64位版本。为了在Unity Editor中运行游戏,所有第三方库必须同时存在于x86和x64(在Unity的常规文件夹中)或至少与Unity Editor的架构相匹配的库中。
答案 1 :(得分:0)
我发现问题是玩家需要安装Visual C ++可再发行组件,可以在这里下载: https://www.microsoft.com/en-gb/download/details.aspx?id=40784