微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法访问CMake UPW项目中的文件系统

如何解决无法访问CMake UPW项目中的文件系统

我构建了一个使用OpenXR和DirectX在VR中显示简单场景的应用程序。当我负责在一个现有项目中实现此任务时,它是使用CMake构建的,它与Visual Studio 2019完美配合。

该应用程序可以在Windows MR Portal以及带有Oculus OpenXR运行时的Oculus Rift S上运行而没有任何问题。

现在,下一步是让它在hololens上运行。因为我需要一个UWP项目来执行此操作,所以我为要在CMake的Hololens上运行的应用程序创建了一个.sln,如下所示:

cmake -G "Visual Studio 16 2019" -A x64 ..\.. -DCMAKE_SYstem_NAME=Windowsstore -DCMAKE_SYstem_VERSION=10.0

有了这个,我可以打开项目并将其编译为UWP,并且可以正常工作。现在,当我想运行应用程序进行调试时,会出现以下错误

Exception thrown at 0x00007FFD3CC83E49 in openxr_test_app.exe: Microsoft C++ exception: std::filesystem::filesystem_error at memory location 0x00000046791CCF50.
Error [GENERAL |  | OpenXR-Loader] : UnkNown failure: canonical: Access denied: "C:\WINDOWS\system32\MixedRealityRuntime.json"

经过一番谷歌搜索,我发现可能需要向Package.appxmanifest添加相关功能,所以我添加

<rescap:Capability Name="broadFileSystemAccess"/>

以及

xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"

IgnorableNamespaces="uap mp rescap"

访问我的Package.appxmanifest,并在Windows设置面板中为我的应用程序启用了文件系统访问权限。

但是,我仍然遇到上面的错误,我也尝试访问PC上的其他文件(因为我认为system32可能会受到更多限制),但没有成功。

我特别困惑,因为Microsoft的OpenXR sample app可以正常工作,而且他们没有声明broadFileSystemAccess功能

还有其他允许文件访问的方法,还是我只是缺少需要启用的功能

解决方法

因此,作为快速跟进,如果有人遇到同样的问题:这里的问题是OpenXR加载程序中的一个错误,该错误是在OpenXR 1.0.10版本中引入的。 更新到OpenXR 1.0.11解决了加载程序无法访问MixedRealityRuntime.json文件的问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。