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

Cannot access filesystem in CMake UPW Project

我构建了一个应用程序,它使用 OpenXR 和 DirectX 在 VR 中显示一个简单的场景。由于我的任务是在一个现有的项目中实现它,它是使用 CMake 构建的,它在 Visual Studio 2019.

上工作得很好

应用程序可以 运行 在 Windows MR Portal 上以及在 Oculus Rift S 上 运行 没有任何问题 运行time。

现在下一步是将其 运行安装在全息透镜上。因为我需要一个 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 设置面板中为我的应用程序启用文件系统访问。

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

我特别困惑,因为 Microsoft 的 OpenXR sample app 没有任何问题,而且他们没有声明 broadFileSystemAccess 功能。

是否有任何其他方法允许文件访问,或者我只是缺少需要启用的东西?

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