Невозможно получить доступ к файловой системе в CMake UPW Project

Я создал приложение, которое использует OpenXR с DirectX для отображения простой сцены в VR. Поскольку мне поручено реализовать это в уже существующем проекте, он построен с использованием CMake, который отлично работает с Visual Studio 2019.

Приложение может работать без проблем на портале Windows MR, а также на Oculus Rift S со средой выполнения Oculus OpenXR.

Теперь следующий шаг - запустить его на гололенсах. Поскольку для этого мне нужен проект UWP, я создал.sln для приложения, которое хочу запустить на гололенах с помощью CMake, следующим образом:

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"

После некоторого поиска в Google я обнаружил, что мне может потребоваться добавить соответствующую возможность в 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 немного более ограничен), но безуспешно.

Я особенно смущен, потому что образец приложения OpenXR от Microsoft работает без проблем, и они не заявили, что broadFileSystemAccess возможности.

Есть ли другие способы разрешить доступ к файлам, или мне просто не хватает чего-то, что мне нужно включить?

1 ответ

Решение

Так что в качестве быстрого ответа, если кто-то столкнется с той же проблемой: проблема заключалась в ошибке в загрузчике OpenXR, который был представлен в версии 1.0.10 OpenXR. Обновление до OpenXR 1.0.11 решило проблему, из-за которой загрузчик не мог получить доступ к MixedRealityRuntime.json файл.

Другие вопросы по тегам