【问题标题】:DLLNotFoundException - Unity3D PluginDLLNotFoundException - Unity3D 插件
【发布时间】:2015-07-21 17:05:50
【问题描述】:

我在某些 Windows 机器上的独立版本中遇到 DLLNotFoundException,而其他机器运行良好。 dll文件肯定在plugins文件夹下,也复制到projectName_Data文件夹下,但没有区别。

还尝试将 dll 添加到流式资产文件夹并如上所述设置新路径 (Environment.SetEnvironmentVariable),但这也不起作用。

使用 Unity 4.5.5 顺便说一句

任何帮助将不胜感激!!!

【问题讨论】:

标签: dll plugins unity3d


【解决方案1】:

我发现错误 DllNotFoundException 在某些情况下非常具有误导性。 Unity 不应该为此负责,因为当 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 位) DLL Unity 会被混淆并且不会加载给你同样的错误。

请注意,Unity 5 提供 32 位和 64 位版本。为了在 Unity Editor 中运行您的游戏,所有第三方库都必须存在于 x86 和 x64(在 Unity 的常规文件夹中)或至少与您的 Unity Editor 架构相匹配的库中。

【讨论】:

    【解决方案2】:

    我发现问题在于玩家需要安装 Visual C++ 可再发行组件,可以在这里下载: https://www.microsoft.com/en-gb/download/details.aspx?id=40784

    【讨论】:

      猜你喜欢
      • 2015-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-26
      • 1970-01-01
      相关资源
      最近更新 更多