我构建了一个应用程序,它使用 OpenXR 和 DirectX 在 VR 中显示一个简单的场景。由于我的任务是在现有项目中实现此功能,因此它是使用 CMake 构建的,与 Visual Studio 2019 完美配合。
该应用程序可以在 Windows MR Portal 以及带有 Oculus OpenXR 运行时的 Oculus Rift S 上毫无问题地运行。
现在下一步是让它在全息透镜上运行。由于我需要一个 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"
在 Windows 设置面板中为我Package.appxmanifest
的应用程序启用文件系统访问权限。
但是,我仍然收到上述错误,我还尝试访问我 PC 上的其他文件(因为我认为 system32 可能会受到更多限制),但没有成功。
我特别困惑,因为 Microsoft 的OpenXR 示例应用程序没有任何问题,而且他们没有声明该broadFileSystemAccess
功能。
有没有其他方法可以允许文件访问,或者我只是缺少一些我需要启用的东西?