Мы получаем следующее сообщение об ошибке при создании приложения 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.
Как я могу получить дополнительную информацию по основной проблеме?
Какие компоненты необходимо установить, чтобы «Комплект сертификации приложений для Windows» работал?
AppxPackaging является частью Windows Kits
установка SDK. Ошибка намекает на отсутствие зависимости.
Мы использовали procmon
(например. choco install procmon
), чтобы попытаться выяснить, какая это была зависимость. Вы должны установить фильтр в Path contains Appx
и запустите задание сборки.
Примечание: если задание сборки выполняется в контейнере Docker, как вы описали, вы должны запустить 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
Окружающая среда. Потом все получилось.