Мое UWP-приложение (C ++ XAML / DirectX) использует компонент среды выполнения Windows (C #) (*)
Наборы сертификатов приложений Windows «Поддерживаемый API-тест» завершается с ошибкой (**), указывающей на то, что я должен активировать .net native. Если это так, как я могу скомпилировать WRC на нативный? У проекта WRC нет опций, связанных с .net native, и мой проект — приложение C ++, в котором также нет опций, касающихся .net native.
Замечания:
(*) WRC, который я использую, https://www.nuget.org/packages/NotificationsExtensions.Win10/
(**) Ошибка, которую я получил:
Изменить: Я использую Windows 10, Visual Studio 2015 Update 3 с последней версией Windows 10 SDK (номер версии 10.0.14393.33)
Это фактически поддерживаемый сценарий — вы можете просто опубликовать такие приложения в Магазине Windows, а ошибка — это просто ошибка в части WACK, и ее можно игнорировать.
Это неподдерживаемый сценарий в приложениях Windows 10 UWP.
Код C # в UWP должен быть скомпилированным с .NET Native для прохождения сертификации (хотя он может свободно работать без .NET Native!). Но .NET Native toolchain не поддерживает встроенную компиляцию отдельных компонентов среды выполнения Windows. Он поддерживается только для сценария, когда основное приложение также является приложением C #.
Таким образом, когда вы ссылаетесь на компонент C # WinRT из кода C ++, он загружает .NET Runtime во время активации компонента (так как он не компилируется в нативный код с .NET Native!), А .NET Runtime ограничивается для сертификации магазина и поэтому WACK терпит неудачу.