Как решить проблемы с AppxPackaging.dll (Windows App Certification Kit)?

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

1 ответ

Решение

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 среда. Тогда это сработало.

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