| Предыдущий | Следующий |
| APPX_E_MISSING_REQUIRED_FILE | APPX_E_INVALID_BLOCKMAP |
APPX_E_INVALID_MANIFEST
Разбор APPX_E_INVALID_MANIFEST: данные для диагностики
Windows возвращает APPX_E_INVALID_MANIFEST (0x80080204), когда выполняется следующее условие: Манифест пакета AppX недопустим.
Для APPX_E_INVALID_MANIFEST старший бит HRESULT делает значение ошибкой. Константа APPX_E_INVALID_MANIFEST объявлена в winerror.h и относится к области «упаковка AppX/MSIX».
Контекст подсистемы
Для APPX_E_INVALID_MANIFEST код возникает на границе проверки структуры пакета: Windows сопоставляет манифест, карту блоков, подпись и фактическое расположение файлов. Для APPX_E_INVALID_MANIFEST ошибка упаковки должна исследоваться на исходном артефакте сборки, а не после ручного редактирования ZIP-контейнера.
Для APPX_E_INVALID_MANIFEST не следует начинать с очистки состояния или переустановки компонента. Для APPX_E_INVALID_MANIFEST сначала необходимо привязать результат к одному вызову, объекту и поколению его состояния.
В имени APPX_E_INVALID_MANIFEST закодированы ориентиры для расследования: APPX — технический признак «appx»; INVALID — недопустимое значение; MANIFEST — манифест. Для APPX_E_INVALID_MANIFEST эти ориентиры задают конкретный предмет проверки, но не заменяют контракт вызвавшего API.
Смысл результата: признаки в имени константы
При разборе APPX_E_INVALID_MANIFEST обозначение APPX связывает код с темой «технический признак «appx»». До повторной проверки APPX_E_INVALID_MANIFEST сохраните входные данные без нормализации.
Для APPX_E_INVALID_MANIFEST часть INVALID относится к области «недопустимое значение». При разборе APPX_E_INVALID_MANIFEST проверьте, какое состояние этого объекта ожидалось и какое наблюдалось реально.
Маркер MANIFEST в APPX_E_INVALID_MANIFEST направляет проверку на манифест. Для APPX_E_INVALID_MANIFEST сопоставьте этот признак с фактическими параметрами первого неуспешного вызова.
Для APPX_E_INVALID_MANIFEST в техническом контексте особенно важны: манифест пакета, AppX/MSIX. При расследовании APPX_E_INVALID_MANIFEST их следует проверять как связанные части одной операции, а не как независимые симптомы.
Диагностические данные
- До повторной попытки по
APPX_E_INVALID_MANIFESTнужно сохранить исходный .appx/.msix и его SHA-256 до повторной упаковки. - Для воспроизводимого отчёта по
APPX_E_INVALID_MANIFESTнужно зафиксировать версию MakeAppx, SignTool и параметры конвейера сборки. - В первичном журнале по
APPX_E_INVALID_MANIFESTнужно сравнить AppxManifest.xml, AppxBlockMap.xml и список файлов с успешным пакетом. - На границе сбоя по
APPX_E_INVALID_MANIFESTнужно проверить, не переписывает ли пакет этап публикации, сжатия или доставки. - Для сравнения с исправным случаем по
APPX_E_INVALID_MANIFESTнужно сохранить журнал AppXDeployment-Server и полный PackageFullName.
Проверка по шагам
- Для
APPX_E_INVALID_MANIFEST: Проверить пакет штатным средством MakeAppx validate и отдельно проверить подпись; сохраните первый hresult и точное время результата. - Для
APPX_E_INVALID_MANIFEST: Сравнить проблемный артефакт с файлом, непосредственно полученным на этапе сборки; отдельно отметьте изменение состояния объекта. - Для
APPX_E_INVALID_MANIFEST: Исключить ручную распаковку и повторное архивирование обычным ZIP-инструментом; все остальные условия оставьте неизменными. - Для
APPX_E_INVALID_MANIFEST: Пересобрать пакет из чистого каталога и подписать уже окончательный файл; не удаляйте исходные данные до завершения сравнения. - Для
APPX_E_INVALID_MANIFEST: Повторить установку на чистом тестовом профиле и проверить журнал развёртывания; повторите шаг на исправном контрольном примере.
Корректирующие действия
Корректирующее действие для APPX_E_INVALID_MANIFEST должно устранять условие «Манифест пакета AppX недопустим» на уровне манифест пакета. Для APPX_E_INVALID_MANIFEST простое подавление HRESULT, бесконечный повтор или очистка всех настроек не доказывают восстановление контракта.
Для APPX_E_INVALID_MANIFEST зафиксируйте результат до и после изменения одними и теми же средствами. Для APPX_E_INVALID_MANIFEST сравнивайте не только HRESULT, но и конечное состояние объекта, побочные эффекты и события подсистемы.
Документация
- Microsoft: Microsoft: app package manifest — APPX_E_INVALID_MANIFEST
- Обзор формата MSIX и структуры пакета — APPX_E_INVALID_MANIFEST
Нужно найти другой код? Найти другой код состояния или ошибки.
