无法访问 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
文件的问题。
我构建了一个应用程序,它使用 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
文件的问题。