Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
MakeAppx.exe создает пакеты приложений (MSIX или .appx) и пакеты пакетов приложений (.msixbundle или .appxbundle). MakeAppx.exe также извлекает файлы из пакета или бандла и шифрует или расшифровывает пакеты и бандлы приложений. Это средство включается в пакет SDK для Windows 10 и может использоваться из командной строки или файла скрипта.
Сведения об использовании MakeApp.exe для упаковки классического приложения см. в разделе "Упаковка классического приложения" вручную.
Это важно
Если вы использовали Visual Studio для разработки приложения, рекомендуется использовать мастер Visual Studio для создания пакета приложения. Дополнительные сведения см. в разделе "Упаковка приложения UWP" с помощью Visual Studio и "Упаковка классического приложения из исходного кода" с помощью Visual Studio.
Это важно
Обратите внимание, что MakeAppx.exe не создает файл отправки пакета приложения (.appxupload или MSixupload),который является рекомендуемым типом допустимого пакета приложения для отправки в Центр партнеров. Файл отправки пакета приложения обычно создается как часть процесса упаковки Visual Studio, хотя его также можно создать вручную.
Использование MakeAppx.exe
На основе пути установки пакета SDK это место, где MakeAppx.exe находится на компьютере с Windows 10:
- C:\Program Files (x86)\Windows Kits\10\bin\<номер сборки>\<архитектура>\makeappx.exe
где <архитектура> = x86, x64, arm, arm64 или chpe. Кроме того, он может находиться в:
- C:\Program Files (x86)\Windows Kits\10\App Certification Kit\makeappx.exe
синтаксис и параметры MakeAppx.exe
Общий синтаксис MakeAppx.exe :
MakeAppx <command> [options]
В следующей таблице описываются команды для MakeAppx.exe.
Команда | Описание |
---|---|
упаковка | Создает пакет. |
распаковывать | Извлекает все файлы в указанном пакете в указанный выходной каталог. |
пакет | Создает связку. |
разделить | Распаковывает все пакеты в подкаталог по указанному выходному пути, названному в честь комплекта или полного имени пакета. |
шифрование | Создает зашифрованный пакет или пакет приложения из входного пакета в указанный выходной пакет. |
расшифровать | Создает расшифрованный пакет или набор приложения из входного пакета или набора приложения в указанный выходной пакет или набор. |
Этот список параметров применяется ко всем командам:
Параметр | Описание |
---|---|
/d | Указывает входной, выходной или контентный каталог. |
/l | Используется для локализованных пакетов. По умолчанию выполняется проверка локализованных пакетов. Эти параметры отключают только определенную проверку, не требуя отключения всех проверок. |
/kf | Шифрует или расшифровывает пакет или набор с помощью ключа из указанного файла ключа. Это нельзя использовать с /kt. |
/Кт | Шифрует или расшифровывает пакет или связку с использованием глобального тестового ключа. Это нельзя использовать с /kf. |
/Нет | Запрещает перезапись выходного файла, если он существует. Если этот параметр не указан или параметр /o, пользователю будет предложено перезаписать файл. |
/nv | Пропускает семантику проверки. Если этот параметр не указан, средство выполняет полную проверку пакета. |
/о | Перезаписывает выходной файл, если он существует. Если этот параметр не указан или параметр /no, пользователю будет предложено перезаписать файл. |
/p | Указывает пакет или набор приложения. |
/v | Включает отображение подробных данных ведения журнала в консоли. |
/? | Отображает текст справки. |
Следующий список содержит возможные аргументы:
Аргумент | Описание |
---|---|
<имя выходного пакета> | Имя созданного пакета. Это имя файла, добавленное с помощью MSIX или .appx. |
<Имя зашифрованного выходного пакета> | Имя созданного зашифрованного пакета. Это имя файла, добавленное с помощью EMSIX или EAPPX. |
<имя входного пакета> | Имя пакета. Это имя файла, добавленное с помощью MSIX или .appx. |
<имя зашифрованного входного пакета> | Имя зашифрованного пакета. Это имя файла, добавленное с помощью EMSIX или EAPPX. |
<Имя выходного пакета> | Имя созданного пакета. Это имя файла, добавленное с .msixbundle или .appxbundle. |
<Имя зашифрованного выходного пакета> | Имя созданного зашифрованного пакета. Это имя файла с добавлением .emsixbundle или .eappxbundle. |
<имя входного пакета> | Имя комплекта. Это имя файла, добавленное с .msixbundle или .appxbundle. |
<Зашифрованное имя пакета входных данных> | Имя зашифрованного пакета. Это имя файла с добавлением .emsixbundle или .eappxbundle. |
<каталог содержимого> | Путь к содержимому программного пакета или связки. |
<Файл сопоставления> | Имя файла, указывающее источник и назначение пакета. |
<выходной каталог> | Путь к каталогу для выходных пакетов и сборок. |
<файл ключа> | Имя файла, содержащего ключ для шифрования или расшифровки. |
<Идентификатор алгоритма> | Алгоритмы, используемые при создании карты блоков. Допустимые алгоритмы: SHA256 (по умолчанию), SHA384, SHA512. |
Создание пакета приложения
Пакет приложения — это полный набор файлов приложения, упакованных в файл пакета MSIX или .appx. Чтобы создать пакет приложения с помощью команды пакета , необходимо указать каталог содержимого или файл сопоставления для расположения пакета. Вы также можете зашифровать пакет при его создании. Если вы хотите зашифровать пакет, необходимо использовать /ep и указать, используется ли файл ключа (/kf) или глобальный ключ теста (/kt). Дополнительные сведения о создании зашифрованного пакета см. в разделе Шифрование или расшифровка пакета или набора.
Параметры, относящиеся к команде пакета :
Параметр | Описание |
---|---|
/ф | Указывает файл сопоставления. |
/ч | Задает хэш-алгоритм, используемый при создании карты блоков. Это можно использовать только с командой pack. Допустимые алгоритмы: SHA256 (по умолчанию), SHA384, SHA512. |
/м | Указывает путь к входному манифесту приложения, который будет использоваться в качестве основы для создания манифеста выходного приложения или пакета ресурсов. При использовании этого параметра необходимо также использовать /f и включить в файл сопоставления раздел [ResourceMetadata], чтобы указать измерения ресурсов, которые необходимо включить в созданный манифест. |
/nc | Предотвращает сжатие файлов пакета. По умолчанию файлы сжимаются на основе обнаруженного типа файла. |
/р | Создает пакет ресурсов. Это необходимо использовать с /m и подразумевает использование параметра /l. |
В следующих примерах использования показаны некоторые возможные варианты синтаксиса для команды пакета :
MakeAppx pack [options] /d <content directory> /p <output package name>
MakeAppx pack [options] /f <mapping file> /p <output package name>
MakeAppx pack [options] /m <app package manifest> /f <mapping file> /p <output package name>
MakeAppx pack [options] /r /m <app package manifest> /f <mapping file> /p <output package name>
MakeAppx pack [options] /d <content directory> /ep <encrypted output package name> /kf <key file>
MakeAppx pack [options] /d <content directory> /ep <encrypted output package name> /kt
Ниже показаны примеры командной строки для команды пакета :
MakeAppx pack /v /h SHA256 /d "C:\My Files" /p MyPackage.msix
MakeAppx pack /v /o /f MyMapping.txt /p MyPackage.msix
MakeAppx pack /m "MyApp\AppxManifest.xml" /f MyMapping.txt /p AppPackage.msix
MakeAppx pack /r /m "MyApp\AppxManifest.xml" /f MyMapping.txt /p ResourcePackage.msix
MakeAppx pack /v /h SHA256 /d "C:\My Files" /ep MyPackage.emsix /kf MyKeyFile.txt
MakeAppx pack /v /h SHA256 /d "C:\My Files" /ep MyPackage.emsix /kt
Создание пакета приложений
Пакет приложений аналогичен пакету приложений, но пакет может уменьшить размер приложения, которое пользователи скачивают. Пакеты приложений полезны для ресурсов, относящихся к языку, различных ресурсов масштабирования изображений или ресурсов, применимых к определенным версиям Microsoft DirectX, например. Аналогично созданию зашифрованного пакета приложения, вы также можете зашифровать пакет во время его объединения. Чтобы зашифровать пакет приложений, используйте параметр /ep и укажите, используется ли файл ключа (/kf) или глобальный ключ теста (/kt). Дополнительные сведения о создании зашифрованного пакета см. в разделе Шифрование или расшифровка пакета или набора.
Параметры, относящиеся к команде пакета :
Параметр | Описание |
---|---|
/bv | Указывает номер версии пакета. Номер версии должен состоять из четырех частей, разделенных точками, в форме: <Основной>.<Незначительный>.<Сборка>.<Ревизия>. |
/ф | Указывает файл сопоставления. |
Обратите внимание, что если версия пакета не указана или задано значение 0.0.0.0, пакет создается с использованием текущей даты и времени.
В следующих примерах использования показаны некоторые возможные варианты синтаксиса для команды пакета :
MakeAppx bundle [options] /d <content directory> /p <output bundle name>
MakeAppx bundle [options] /f <mapping file> /p <output bundle name>
MakeAppx bundle [options] /d <content directory> /ep <encrypted output bundle name> /kf MyKeyFile.txt
MakeAppx bundle [options] /f <mapping file> /ep <encrypted output bundle name> /kt
Следующий блок содержит примеры для команды пакета :
MakeAppx bundle /v /d "C:\My Files" /p MyBundle.msixbundle
MakeAppx bundle /v /o /bv 1.0.1.2096 /f MyMapping.txt /p MyBundle.msixbundle
MakeAppx bundle /v /o /bv 1.0.1.2096 /f MyMapping.txt /ep MyBundle.emsixbundle /kf MyKeyFile.txt
MakeAppx bundle /v /o /bv 1.0.1.2096 /f MyMapping.txt /ep MyBundle.emsixbundle /kt
Извлечение файлов из пакета или сборки
Помимо упаковки и объединения приложений, MakeAppx.exe может также распаковывать или разъединять существующие пакеты. Необходимо указать каталог содержимого в качестве назначения для извлеченных файлов. Если вы пытаетесь извлечь файлы из зашифрованного пакета или пакета, можно расшифровать и извлечь файлы одновременно с помощью параметра /ep и указать, следует ли расшифровывать его с помощью файла ключа (/kf) или глобального ключа теста (/kt). Дополнительные сведения о шифровании или расшифровке пакета или набора см. в разделе "Шифрование или расшифровка пакета или набора".
Параметры, относящиеся к распаковке и разгруппировке команд:
Параметр | Описание |
---|---|
/nd | Не выполняет расшифровку при распаковке или разборке пакета/набора. |
/pfn | Распаковывает все файлы в подкаталог по указанному выходному пути, называемый в честь полного имени пакета или бандла. |
В следующих примерах использования показаны некоторые возможные варианты синтаксиса для команд распаковки и разобрать :
MakeAppx unpack [options] /p <input package name> /d <output directory>
MakeAppx unpack [options] /ep <encrypted input package name> /d <output directory> /kf <key file>
MakeAppx unpack [options] /ep <encrypted input package name> /d <output directory> /kt
MakeAppx unbundle [options] /p <input bundle name> /d <output directory>
MakeAppx unbundle [options] /ep <encrypted input bundle name> /d <output directory> /kf <key file>
MakeAppx unbundle [options] /ep <encrypted input bundle name> /d <output directory> /kt
Следующий блок содержит примеры использования команд распаковки и распаковки:
MakeAppx unpack /v /p MyPackage.msix /d "C:\My Files"
MakeAppx unpack /v /ep MyPackage.emsix /d "C:\My Files" /kf MyKeyFile.txt
MakeAppx unpack /v /ep MyPackage.emsix /d "C:\My Files" /kt
MakeAppx unbundle /v /p MyBundle.msixbundle /d "C:\My Files"
MakeAppx unbundle /v /ep MyBundle.emsixbundle /d "C:\My Files" /kf MyKeyFile.txt
MakeAppx unbundle /v /ep MyBundle.emsixbundle /d "C:\My Files" /kt
Шифрование или расшифровка пакета или сборки
Средство MakeAppx.exe также может шифровать или расшифровывать существующий пакет или связку. Необходимо просто указать имя пакета, имя выходного пакета и следует ли шифрование или расшифровку использовать файл ключа (/kf) или глобальный ключ теста (/kt).
Шифрование и расшифровка недоступны в мастере упаковки Visual Studio.
Параметры, относящиеся к шифрованию и расшифровке команд:
Параметр | Описание |
---|---|
/ep | Указывает зашифрованный пакет или набор приложений. |
В следующих примерах использования показаны некоторые возможные варианты синтаксиса для команд шифрования и расшифровки :
MakeAppx encrypt [options] /p <package name> /ep <output package name> /kf <key file>
MakeAppx encrypt [options] /p <package name> /ep <output package name> /kt
MakeAppx decrypt [options] /ep <package name> /p <output package name> /kf <key file>
MakeAppx decrypt [options] /ep <package name> /p <output package name> /kt
Следующий блок содержит примеры использования команд шифрования и расшифровки :
MakeAppx.exe encrypt /p MyPackage.msix /ep MyEncryptedPackage.emsix /kt
MakeAppx.exe encrypt /p MyPackage.msix /ep MyEncryptedPackage.emsix /kf MyKeyFile.txt
MakeAppx.exe decrypt /p MyPackage.msix /ep MyEncryptedPackage.emsix /kt
MakeAppx.exe decrypt p MyPackage.msix /ep MyEncryptedPackage.emsix /kf MyKeyFile.txt
Файлы ключей
Файлы ключей должны начинаться со строки, содержащей строку "[Ключи]" и строки, описывающие ключи для шифрования каждого пакета. Каждый ключ представлен парой строк в кавычках, разделенными пробелами или вкладками. Первая строка представляет идентификатор ключа 32-байтов в кодировке Base64, а второй — ключ шифрования 32-байтов. Файл ключа должен быть простым текстовым файлом.
Пример файла ключа:
[Keys]
"OWVwSzliRGY1VWt1ODk4N1Q4R2Vqc04zMzIzNnlUREU=" "MjNFTlFhZGRGZEY2YnVxMTBocjd6THdOdk9pZkpvelc="
Файлы сопоставления
Файлы сопоставления должны начинаться со строки, содержащей строку "[Файлы]", за которой следуют строки, описывающие файлы, подлежащие добавлению в пакет. Каждый файл описывается парой путей в кавычках, разделенных пробелами или вкладками. Каждый файл представляет источник (на диске) и назначение (в пакете). Файл сопоставления должен быть простым текстовым файлом.
Пример файла сопоставления (без параметра /m):
[Files]
"C:\MyApp\StartPage.html" "default.html"
"C:\Program Files (x86)\example.txt" "misc\example.txt"
"\\MyServer\path\icon.png" "icon.png"
"my app files\readme.txt" "my app files\readme.txt"
"CustomManifest.xml" "AppxManifest.xml"
При использовании файла сопоставления можно выбрать, следует ли использовать параметр /m. Параметр /m позволяет пользователю указать метаданные ресурса в файле сопоставления, которые будут включены в созданный манифест. Если вы используете параметр /m, файл сопоставления должен содержать раздел, начинающийся со строки "[ResourceMetadata]", а затем строки, указывающие "ResourceDimensions" и "ResourceId". Пакет приложения может содержать несколько "ResourceDimensions", но может быть только один "ResourceId".
Пример файла сопоставления (с параметром /m):
[ResourceMetadata]
"ResourceDimensions" "language-en-us"
"ResourceId" "English"
[Files]
"images\en-us\logo.png" "en-us\logo.png"
"en-us.pri" "resources.pri"
Семантическая валидация, выполняемая MakeAppx.exe
MakeAppx.exe выполняет ограниченную проверку sematic, которая предназначена для перехвата наиболее распространенных ошибок развертывания и помогает убедиться, что пакет приложения действителен. См. параметр /nv, если вы хотите пропустить проверку при использовании MakeAppx.exe.
Эта проверка гарантирует, что:
- Все файлы, на которые ссылается манифест пакета, включаются в пакет приложения.
- Приложение не имеет двух одинаковых ключей.
- Приложение не регистрируется для запрещенного протокола из этого списка: SMB, FILE, MS-WWA-WEB, MS-WWA.
Это не полная семантическая проверка, так как она предназначена только для перехвата распространенных ошибок. Пакеты, созданные MakeAppx.exe , не гарантируют возможность установки.