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

Unity开发Hololens 2时缺失vcruntime140_app.dll问题求助

Hololens 2 Unity QR追踪:vcruntime140_app.dll 加载失败解决办法

问题原因分析

  1. 架构不匹配:Hololens 2采用ARM64架构,你安装的是x64版本的VC++运行库,而插件依赖的是ARM64版本的vcruntime140_app.dll(UWP专用版本)。
  2. DLL访问限制:你在SystemApps目录找到的DLL属于系统应用私有文件,Unity编译UWP项目时无法访问该路径的文件。
  3. 初始化方式错误:直接在字段声明时用new QRCodeWatcher()实例化会导致初始化时机过早,此时运行库可能还未正确加载,且未处理必要的权限请求。

解决办法

  • 安装ARM64版本VC++运行库:卸载控制面板中已安装的x64版本VC++ 2015-2022 Redistributable,下载并安装ARM64架构的UWP版本运行库。注意区分桌面版和UWP版,必须选择适配UWP的安装包。
  • 修正QRCodeWatcher初始化逻辑:不要在序列化字段时直接实例化,改为在Unity生命周期函数中初始化,并先申请相机权限(Hololens扫描二维码需要相机权限):
[SerializeField] private QRCodeWatcher qrTracker;

private async void Start()
{
    // 请求相机权限
    var permissionStatus = await Permission.RequestAsync<Permission.Camera>();
    if (permissionStatus == PermissionStatus.Granted)
    {
        qrTracker = new QRCodeWatcher();
        qrTracker.Added += OnQRCodeDetected;
        qrTracker.Start();
    }
}

private void OnQRCodeDetected(object sender, QRCodeAddedEventArgs args)
{
    Debug.Log($"识别到二维码内容:{args.Code.Data}");
}

private void OnDestroy()
{
    if (qrTracker == null) return;
    
    qrTracker.Stop();
    qrTracker.Added -= OnQRCodeDetected;
    qrTracker.Dispose();
}
  • 配置UWP构建参数:
    • 打开Unity的Build Settings,目标平台切换为Universal Windows Platform,目标设备选择Hololens 2。
    • 在Player Settings的Publishing Settings中,勾选Capabilities里的WebCam权限。
    • 确保架构选择为ARM64,避免混用x64架构导致运行库不兼容。
  • 手动添加ARM64版DLL到项目:
    找到ARM64版本的vcruntime140_app.dll(可从UWP运行库安装目录提取),复制到项目的Assets/Plugins/UWP/ARM64目录(无此路径则手动创建)。选中该DLL,在Inspector面板设置:
    • Platform:Universal Windows Platform
    • CPU:ARM64
    • Copy to Output Directory:Copy Always

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 01:31:21