Упаковщик приложений (MakeAppx.exe)
Примечание.
Инструкции по использованию этого инструмента см. в разделе "Создание пакета приложения" с помощью средства MakeAppx.exe.
Упаковщик приложений (MakeAppx.exe) создает пакет приложения из файлов на диске или извлекает файлы из пакета приложения на диск. Начиная с Windows 8.1 пакет пакета приложений также создает пакет пакетов приложений из пакетов приложений на диске или извлекает пакеты приложений из пакета приложения на диск. Он включается в Microsoft Visual Studio и пакет SDK для Windows 8 или пакета SDK для Windows 8 или Windows Software Development Kit (SDK) для Windows 8.1 и более поздней версии. Посетите страницу загрузки для разработчиков , чтобы получить их.
Средство MakeAppx.exe обычно находится в определенных расположениях версии операционной системы:
- C:\Program Files (x86)\Windows Kits\10\bin<build number><architecture>\makeappx.exe
Где <архитектура> = x86, x64, arm, ar64 или chpe. Кроме того, он может находиться в:
C:\Program Files (x86)\Windows Kits\10\App Certification Kit\makeappx.exe
- Создание пакета с помощью структуры каталогов
- Создание пакета с помощью файла сопоставления
- Подписыв пакет с помощью SignTool
- Извлечение файлов из пакета
- Создание пакета пакета с помощью структуры каталогов
- Создание пакета с помощью файла сопоставления
- Извлечение пакетов из пакета
- Шифрование пакета с помощью файла ключа
- Шифрование пакета с помощью глобального ключа теста
- Расшифровка пакета с помощью файла ключа
- Расшифровка пакета с помощью глобального ключа теста
- Использование
Использование пакета приложений
Примечание.
Относительные пути поддерживаются во всем инструменте.
Создание пакета с помощью структуры каталогов
Поместите AppxManifest.xml в корневой каталог, содержащий все полезные файлы приложения. Идентичная структура каталогов создается для пакета приложения и будет доступна при извлечении пакета во время развертывания.
Поместите все файлы в одну структуру каталогов, создайте подкаталоги по мере необходимости.
Создайте допустимый манифест пакета, AppxManifest.xml и поместите его в корневой каталог.
Выполните следующую команду:
Пакет MakeAppx /d input_directorypath /p filepath.appx
Создание пакета с помощью файла сопоставления
Создайте допустимый манифест пакета AppxManifest.xml.
Создайте файл сопоставления. Первая строка содержит строку [Файлы], а строки, которые следуют указаниям пути источника (диска) и назначения (пакета) в кавычках.
[Files] "C:\MyApp\StartPage.htm" "default.html" "C:\MyApp\readme.txt" "doc\readme.txt" "\\MyServer\path\icon.png" "icon.png" "MyCustomManifest.xml" "AppxManifest.xml"
Выполните следующую команду:
Пакет MakeAppx /f mapping_filepath /p filepath.appx
Подписыв пакет с помощью SignTool
Создайте сертификат. Издатель, указанный в манифесте, должен соответствовать сведениям субъекта издателя сертификата подписи. Дополнительные сведения о создании сертификата подписи см. в статье "Создание сертификата подписи пакета приложения".
Выполните SignTool.exe, чтобы подписать пакет:
Знак SignTool /a /v /fd hashAlgorithm /fcertFileName filepath.appx
ХэшAlgorithm должен соответствовать хэш-алгоритму, используемому для создания блочной карты при упаковке приложения. С помощью программы упаковки MakeAppx алгоритм хэш-хэша Appx по умолчанию — SHA256. Запустите SignTool.exe укажите SHA256 в качестве алгоритма дайджеста файла (/fd):
Знак SignTool /a /v /fd SHA256 /fcertFileName filepath.appx
Дополнительные сведения о подписи пакетов см. в разделе "Как подписать пакет приложения с помощью SignTool".
Извлечение файлов из пакета
Выполните следующую команду:
MakeAppx распаковывать /p-файл.appx /d output_directory
Распакованный пакет имеет ту же структуру, что и установленный пакет.
Создание пакета пакета с помощью структуры каталогов
Мы используем команду пакета для создания пакета приложений с <именем> выходного пакета, добавив все пакеты из <каталога> содержимого (включая вложенные папки). Если <каталог> содержимого содержит манифест пакета, AppxBundleManifest.xml, он игнорируется.
Поместите все пакеты в одну структуру каталогов, создавая подкаталоги по мере необходимости.
Выполните следующую команду:
Пакет MakeAppx /d input_directorypath /p filepath.appxbundle
Создание пакета с помощью файла сопоставления
Мы используем команду пакета для создания пакета приложений с <именем> выходного пакета, добавив все пакеты из списка пакетов в <файле> сопоставления. Если <файл> сопоставления содержит манифест пакета, AppxBundleManifest.xml, он игнорируется.
<Создайте файл> сопоставления. Первая строка содержит строку [Файлы], а строки, которые следуют указаниям пакетов для добавления в пакет. Каждый пакет описывается парой путей в кавычках, разделенных пробелами или вкладками. Пара путей представляет источник пакета (на диске) и назначение (в пакете). Все имена целевых пакетов должны иметь расширение .appx.
[Files] "C:\MyApp\MyApp_x86.appx" "MyApp_x86.appx" "C:\Program Files (x86)\ResPack.appx" "resources\resPack.appx" "\\MyServer\path\ResPack.appx" "Respack.appx" "my app files\respack.appx" "my app files\respack.appx"
Выполните следующую команду:
Пакет MakeAppx /f mapping_filepath /p filepath.appxbundle
Извлечение пакетов из пакета
Выполните следующую команду:
MakeAppx unbundle /p bundle_name.appxbundle /d output_directory
Распакованный пакет имеет ту же структуру, что и установленный пакет пакетов.
Шифрование пакета с помощью файла ключа
Создайте файл ключа. Файлы ключей должны начинаться со строки, содержащей строку "[ключи]" и строки, описывающие ключи для шифрования пакета. Каждый ключ описывается парой строк в кавычках, разделенных пробелами или вкладками. Первая строка представляет идентификатор ключа, а вторая строка представляет ключ шифрования в шестнадцатеричной форме.
[Keys] "0" "1AC4CDCFF1924D2885A0607269787BA6BF09B7FFEBF74ED4B9D86E423CF9186B"
Выполните следующую команду:
MakeAppx.exe шифровать /p package_name.appx /ep encrypted_package_name.eappx /kf keyfile_name.txt
Входной пакет будет зашифрован в указанный зашифрованный пакет с помощью предоставленного файла ключа.
Шифрование пакета с помощью глобального ключа теста
Выполните следующую команду:
MakeAppx.exe шифрования /p package_name.appx /ep encrypted_package_name.eappx /kt
Входной пакет будет зашифрован в указанный зашифрованный пакет с помощью глобального ключа теста.
Расшифровка пакета с помощью файла ключа
Создайте файл ключа. Файлы ключей должны начинаться со строки, содержащей строку "[ключи]" и строки, описывающие ключи для шифрования пакета. Каждый ключ описывается парой строк в кавычках, разделенных пробелами или вкладками. Первая строка представляет идентификатор ключа 32-байтов в кодировке Base64, а вторая строка представляет ключ шифрования 32-байтов в кодировке Base64.
[Keys] "OWVwSzliRGY1VWt1ODk4N1Q4R2Vqc04zMzIzNnlUREU=" "MjNFTlFhZGRGZEY2YnVxMTBocjd6THdOdk9pZkpvelc="
Выполните следующую команду:
MakeAppx.exe расшифровать /p package_name.appx /ep unencrypted_package_name.eappx /kf keyfile_name.txt
Входной пакет будет расшифровывается в указанный незашифрованный пакет с помощью предоставленного файла ключа.
Расшифровка пакета с помощью глобального ключа теста
Выполните следующую команду:
MakeAppx.exe расшифровать /p package_name.appx /ep unencrypted_package_name.eappx /kt
Входной пакет будет расшифровывается в указанный незашифрованный пакет с помощью глобального ключа теста.
Использование
Аргумент командной строки /p всегда является обязательным с параметром /d, /f или /ep. Обратите внимание, что /d, /f и /ep являются взаимоисключающими.
Пакет MakeAppx [параметры] /p <output package name> /d <content directory>
Пакет MakeAppx [параметры] /p <output package name> /f <mapping file>
MakeAppx распаковка [параметры] /p< input package name> /d< output directory >
Пакет MakeAppx [параметры] /p <output bundle name> /d <content directory>
Пакет MakeAppx [параметры] /p <output bundle name> /f <mapping file>
MakeAppx unbundle [options] /p <input bundle name> /d <output directory>
MakeAppx encrypt [options] /p <input package name> /ep <output package name>
Расшифровка MakeAppx [параметры] /p< input package name> /ep< output package name >
Синтаксис для командной строки
Ниже приведен общий синтаксис использования командной строки для MakeAppx.
MakeAppx [pack|unpack|bundle|unbundle|encrypt|decrypt] [/h /kf /kt /l /o /no /nv /v /pfn /?]
MakeAppx пакеты или распаковывает файлы в пакете, пакеты или распаковывает пакеты в пакете или шифрует или расшифровывает пакет приложения или пакет в указанном входном каталоге или файле сопоставления. Ниже приведен список параметров, применяемых к пакету MakeAppx, распаковке MakeAppx, пакету MakeAppx, unbundle, MakeAppx encrypt или Расшифровке MakeAppx.
-
/l
-
Этот параметр используется для локализованных пакетов. По умолчанию выполняется проверка локализованных пакетов. Этот параметр отключает только ту конкретную проверку, не требуя, чтобы все проверки были отключены.
-
/o
-
Перезаписать выходной файл, если он существует. Если этот параметр не указан или параметр /no , пользователю будет предложено перезаписать файл.
Этот параметр нельзя использовать с /no.
-
/Нет
-
Запрещает перезапись выходного файла, если он существует. Если этот параметр не указан или параметр /o , пользователю будет предложено перезаписать файл.
Этот параметр нельзя использовать с /o.
-
/nv
-
Пропустить семантику проверки. Если этот параметр не указан, средство выполняет полную проверку пакета.
-
/v
-
Включите подробные выходные данные ведения журнала в консоль.
-
/?
-
Отображение текста справки.
Пакет MakeAppx, Распаковка MakeAppx, пакет MakeAppx, unbundle, MakeAppx encrypt и MakeAppx расшифровка являются взаимоисключающими командами. Ниже приведены параметры командной строки, которые применяются специально к каждой команде:
Пакет MakeAppx [h]
Создает пакет.
-
Алгоритм /h
-
Задает хэш-алгоритм, используемый при создании карты блоков. Ниже приведены допустимые значения алгоритма:
- SHA256 (по умолчанию)
- SHA384
- SHA512
Этот параметр нельзя использовать с командой распаковки .
MakeAppx распаковка [pfn]
Извлекает все файлы в указанном пакете в указанный выходной каталог. Выходные данные имеют ту же структуру каталогов, что и пакет.
-
/pfn
-
Указывает каталог с полным именем пакета. Этот каталог создается в указанном выходном расположении. Этот параметр нельзя использовать с командой пакета .
MakeAppx unbundle [pfn]
Распаковка всех пакетов в подкаталог по указанному выходному пути с именем полного имени пакета. Выходные данные имеют ту же структуру каталогов, что и установленный пакет пакетов.
-
/pfn
-
Указывает каталог с полным именем пакета. Этот каталог создается в указанном выходном расположении. Этот параметр нельзя использовать с командой пакета .
Шифрование MakeAppx [kf, kt]
Создает зашифрованный пакет приложения из указанного входного пакета приложения в указанном выходном пакете.
-
Файл ключа /kf <>
-
Шифрует пакет или пакет с помощью ключа из указанного файла ключа. Этот параметр нельзя использовать с kt.
-
/Кт
-
Шифрует пакет или пакет с помощью глобального ключа теста. Этот параметр нельзя использовать с KF.
Расшифровка MakeAppx [kf, kt]
Создает незашифрованный пакет приложения из указанного входного пакета приложения в указанном выходном пакете.
-
Файл ключа /kf <>
-
Расшифровывает пакет или пакет с помощью ключа из указанного файла ключей. Этот параметр нельзя использовать с kt.
-
/Кт
-
Расшифровывает пакет или пакет с помощью глобального ключа теста. Этот параметр нельзя использовать с KF.
Семантическая проверка, выполняемая MakeAppx
MakeAppx выполняет ограниченную семантику проверки, которая предназначена для перехвата наиболее распространенных ошибок развертывания и помогает убедиться, что пакет приложения действителен.
Эта проверка гарантирует, что:
- Все файлы, на которые ссылается манифест пакета, включаются в пакет приложения.
- Приложение не имеет двух одинаковых ключей.
- Приложение не регистрируется для запрещенного протокола из этого списка: SMB, FILE, MS-WWA-WEB, MS-WWA.
Эта семантическая проверка не завершена, и пакеты, созданные MakeAppx, не гарантируют установку.