You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity部署ARM64设备(Hololens 2)时自定义DLL找不到问题求助

解决Hololens 2部署时ARM64 DLL加载失败的问题

针对你遇到的DllNotFoundException(WinError 0x7e),按以下步骤排查解决:

1. 修正Unity插件目录结构

Unity对不同CPU架构的原生DLL有严格的目录要求,直接放在Assets/Plugins根目录会导致打包时ARM64 DLL未被正确包含:

  • 创建Assets/Plugins/x86目录,将编辑器用的x86版本CrackDetection.dll移入,并在Inspector面板设置:
    • Platform Settings:勾选Windows,CPU选择x86,设置Copy to Output Directory为Copy if newer
  • 创建Assets/Plugins/ARM64目录,将ARM64版本的OpenCV_ImageProcessing_ARM64.dll、依赖的OpenCV ARM64 DLL移入,同样在Inspector设置:
    • Platform Settings:勾选Windows,CPU选择ARM64,Copy to Output Directory设为Copy if newer

2. 处理VC运行时依赖

如果你的自定义DLL是用VS2015+编译的,确实需要ARM64版本的MSVCP140.dll和VCRUNTIME140.dll:

  • 不能从第三方网站下载,直接从你的Visual Studio安装路径获取,路径示例:
    C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Redist\MSVC\14.38.33130\arm64\Microsoft.VC143.CRT
    
  • 将该目录下的msvcp140.dll、vcruntime140.dll复制到Assets/Plugins/ARM64目录,和其他DLL放在一起
  • 更省心的方案:编译自定义DLL时,在VS项目属性中设置C/C++ -> 代码生成 -> 运行库为/MT(静态链接),这样DLL会把VC运行时打包进去,无需额外携带这些依赖DLL

3. 验证DllImport和DLL文件名

  • 确保[DllImport("OpenCV_ImageProcessing_ARM64")]中的名称和DLL文件名完全一致(不带.dll后缀,Unity会自动处理),检查拼写错误
  • 确认自定义DLL是ARM64架构的Release版本:Debug版本的DLL依赖Debug版VC运行时,Hololens设备默认没有,必须用Release编译

4. 打包后验证文件存在性

打包Hololens应用后,用Visual Studio的App Package Explorer打开生成的.appx包,检查Assets\Plugins\ARM64目录下是否包含所有需要的DLL:

  • 你的自定义ARM64 DLL
  • 依赖的OpenCV ARM64 DLL
  • (如果用动态链接)VC运行时DLL

内容的提问来源于stack exchange,提问作者CocoaMilka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 00:53:28