Назад | Перейти на главную страницу

Как решить проблемы с AppxPackaging.dll (комплект сертификации приложений для Windows)?

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