Мы получаем следующее сообщение об ошибке при создании приложения UWP.
Задача «ValidateAppxManifest» не удалась. Получение фабрики COM-классов для компонента с CLSID {5842A140-FF9F-4166-8F5C-62F5B7B0C781} не удалось из-за следующей ошибки: 8007045a Библиотека динамической компоновки (DLL) Не удалось выполнить процедуру инициализации. (Исключение из HRESULT: 0x8007045A).
{5842A140-FF9F-4166-8F5C-62F5B7B0C781} указывает на AppxPackaging.dll. Реестр HKEY_CLASSES_ROOT \ CLSID \ {5842a140-ff9f-4166-8f5c-62f5b7b0c781} \ InProcServer32
существует.
Система сборки представляет собой докер с Windows Server Core и Visual Studio 2017. Как можно
root@school:~# adduser username
Adding user `username' ...
Adding new group `username' (1001) ...
Adding new user `username' (1001) with group `username' ...
Creating home directory `/home/username' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
. Я получаю дополнительную информацию о основной проблеме?
Какие компоненты должны быть установлены, чтобы «Комплект сертификации приложений для Windows» работал?
AppxPackaging является частью установки SDK Windows Kits
. Ошибка указывает на отсутствующую зависимость.
Мы использовали procmon
(напр. choco install procmon
), чтобы попытаться выяснить, какая это была зависимость. Вы должны установить фильтр в Путь содержит Appx
и запустить build job.
Примечание: если build job запускается в контейнере Docker Container, как вы описали, вы должны запустить procmon
на хосте, а не в контейнере.
Список процессов, наполненный большим количеством информации, до момента загрузки AppxPackaging.dll
. Затем было указано, что AppxSip.dll
был просмотрен в направлении Path
, но не был найден (Результат: NAME NOT FOUND
). Поэтому мы проверили систему для этой dll.
Мы нашли соответствующий файл в подпапке Windows Kits C:\Program Files (x86)\Windows Kits\10\bin\10.0.17134.0\x86
и добавили этот путь в среду $env:Path
. Затем все получилось.