Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
MakeAppx.exe cria pacotes de aplicativos (.msix ou .appx) e pacotes de aplicativos em lote (.msixbundle ou .appxbundle). MakeAppx.exe também extrai arquivos de um pacote de aplicativos e criptografa ou descriptografa pacotes de aplicativos. Essa ferramenta está incluída no SDK do Windows 10 e pode ser usada em um prompt de comando ou em um arquivo de script.
Para obter informações sobre como usar MakeApp.exe para empacotar um aplicativo da área de trabalho, consulte Empacotar um aplicativo da área de trabalho manualmente.
Importante
Se você usou o Visual Studio para desenvolver seu aplicativo, é recomendável usar o assistente do Visual Studio para criar seu pacote de aplicativos. Para obter mais informações, consulte Empacotar um aplicativo UWP com o Visual Studio e empacotar um aplicativo da área de trabalho do código-fonte usando o Visual Studio.
Importante
Observe que MakeAppx.exe não cria um arquivo de carregamento de pacote de aplicativo (.appxupload ou .msixupload), que é o tipo recomendado de pacote de aplicativo válido para envios ao Partner Center. O arquivo de carregamento do pacote do aplicativo normalmente é criado como parte do processo de empacotamento do Visual Studio, embora também possa ser criado manualmente.
Como usar o MakeAppx.exe
Com base no caminho de instalação do SDK, o local de MakeAppx.exe no seu computador Windows 10 é:
- C:\Arquivos de Programas(x86)\Windows Kits\10\bin\<número do build>\<arquitetura>\makeappx.exe
em que <arquitetura> = x86, x64, arm, arm64 ou chpe. Como alternativa, pode estar localizado em:
- C:\Program Files (x86)\Windows Kits\10\App Certification Kit\makeappx.exe
sintaxe e opções do MakeAppx.exe
Sintaxe geral MakeAppx.exe:
MakeAppx <command> [options]
A tabela a seguir descreve os comandos para MakeAppx.exe.
| Comando | Descrição |
|---|---|
| pacote | Cria um pacote. |
| desempacotar | Extrai todos os arquivos do pacote especificado para o diretório de saída especificado. |
| pacote | Cria um pacote. |
| desagrupar | Desempacota todos os pacotes em um subdiretório no caminho de saída especificado com o nome completo do pacote. |
| criptografar | Cria um pacote de aplicativo criptografado ou um pacote do pacote de entrada no pacote de saída especificado. |
| desencriptar | Cria um pacote ou conjunto de aplicativos descriptografado a partir do pacote/conjunto de aplicativos de entrada no pacote/conjunto de saída especificado. |
Esta lista de opções se aplica a todos os comandos:
| Opção | Descrição |
|---|---|
| /d | Especifica o diretório de entrada, saída ou conteúdo. |
| /l | Usado para pacotes localizados. As viagens de validação padrão em pacotes localizados. Essas opções desabilitam somente essa validação específica, sem exigir que toda a validação seja desabilitada. |
| /kf | Criptografa ou descriptografa o pacote ou conjunto usando a chave do arquivo de chave especificado. Isso não pode ser usado com /kt. |
| /Kt | Criptografa ou descriptografa o pacote ou conjunto usando a chave de teste global. Isso não pode ser usado com /kf. |
| /Não | Impede a substituição do arquivo de saída, se ele existir. Se você não especificar essa opção ou a opção /o, o usuário será questionado se deseja substituir o arquivo. |
| /Nv | Ignora a validação semântica. Se você não especificar essa opção, a ferramenta realizará uma validação completa do pacote. |
| /em | Substitui o arquivo de saída caso ela exista. Se você não especificar essa opção ou a opção /no, o usuário será questionado se deseja substituir o arquivo. |
| /p | Especifica o pacote ou o conjunto do aplicativo. |
| /v | Habilita a saída de log detalhada para o console. |
| /? | Exibe texto de ajuda. |
A lista a seguir contém possíveis argumentos:
| Argumento | Descrição |
|---|---|
| <nome do pacote de saída> | O nome do pacote criado. Esse é o nome do arquivo acrescentado com .msix ou .appx. |
| <nome do pacote de saída criptografado> | O nome do pacote criptografado criado. Esse é o nome do arquivo acrescentado com .emsix ou .eappx. |
| <nome do pacote de entrada> | O nome do pacote. Esse é o nome do arquivo acrescentado com .msix ou .appx. |
| <nome do pacote de entrada criptografado> | O nome do pacote criptografado. Esse é o nome do arquivo acrescentado com .emsix ou .eappx. |
| <nome do pacote de saída> | O nome do pacote criado. Esse é o nome do arquivo acrescentado com .msixbundle ou .appxbundle. |
| <nome do pacote de saída criptografado> | O nome do pacote criptografado criado. Esse é o nome do arquivo acrescentado com .emsixbundle ou .eappxbundle. |
| <nome do pacote de entrada> | O nome do pacote. Esse é o nome do arquivo acrescentado com .msixbundle ou .appxbundle. |
| <nome do pacote de entrada criptografado> | O nome do pacote criptografado. Esse é o nome do arquivo acrescentado com .emsixbundle ou .eappxbundle. |
| <diretório de conteúdo> | Caminho para o pacote do aplicativo ou o conteúdo do pacote. |
| <arquivo de mapeamento> | Nome do arquivo que especifica a origem e o destino do pacote. |
| <diretório de saída> | Caminho para o diretório dos pacotes e dos pacotes de saída. |
| <arquivo-chave> | Nome do arquivo que contém uma chave para criptografia ou descriptografia. |
| <ID do algoritmo> | Algoritmos usados ao criar um mapa de blocos. Os algoritmos válidos incluem: SHA256 (padrão), SHA384, SHA512. |
Criar um pacote de aplicativo
Um pacote de aplicativo é um conjunto completo de arquivos do aplicativo empacotados em um arquivo de pacote .msix ou .appx. Para criar um pacote de aplicativos usando o comando do pacote , você deve fornecer um diretório de conteúdo ou um arquivo de mapeamento para o local do pacote. Você também pode criptografar um pacote ao criá-lo. Se você quiser criptografar o pacote, deverá usar /ep e especificar se está usando um arquivo de chave (/kf) ou a chave de teste global (/kt). Para obter mais informações sobre como criar um pacote criptografado, consulte Criptografar ou descriptografar um pacote ou um conjunto.
Opções específicas para o comando do pacote :
| Opção | Descrição |
|---|---|
| /f | Especifica o arquivo de mapeamento. |
| por hora | Especifica o algoritmo de hash a ser usado ao criar o mapa de blocos. Isso só pode ser usado com o comando pack. Os algoritmos válidos incluem: SHA256 (padrão), SHA384, SHA512. |
| /m | Especifica o caminho para um manifesto de aplicativo de entrada que será usado como base para gerar o pacote do aplicativo de saída ou o manifesto do pacote de recursos. Ao usar essa opção, você também deve usar /f e incluir uma seção [ResourceMetadata] no arquivo de mapeamento para especificar as dimensões de recurso a serem incluídas no manifesto gerado. |
| /Nc | Impede a compactação dos arquivos de pacote. Por padrão, os arquivos são compactados com base no tipo de arquivo detectado. |
| /r | Cria um pacote de recursos. Isso deve ser usado com /m e implica no uso da opção /l. |
Os exemplos de uso a seguir mostram algumas opções de sintaxe possíveis para o comando do pacote :
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
O seguinte mostra exemplos de linha de comando para o comando do pacote :
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
Criar um lote de aplicativo
Um pacote de aplicativo é semelhante a um pacote de aplicativos, mas um pacote pode reduzir o tamanho do aplicativo que os usuários baixam. Os pacotes de aplicativos são úteis para ativos específicos do idioma, ativos de escalas de imagem variadas ou recursos que se aplicam a versões específicas do Microsoft DirectX, por exemplo. Semelhante à criação de um pacote de aplicativo criptografado, você também pode criptografar o pacote do aplicativo ao agrupar-o. Para criptografar o pacote de aplicativos, use a opção /ep e especifique se você está usando um arquivo de chave (/kf) ou a chave de teste global (/kt). Para obter mais informações sobre como criar um pacote criptografado, consulte Criptografar ou descriptografar um pacote ou um bundle.
Opções específicas para o comando de pacote :
| Opção | Descrição |
|---|---|
| /Bv | Especifica o número de versão do pacote. O número da versão deve estar em quatro partes separadas por períodos no formulário: <Major>.<Menor>.<Compilar>.<Revisão>. |
| /f | Especifica o arquivo de mapeamento. |
Observe que, se a versão do pacote não for especificada ou se estiver definida como "0.0.0.0", o pacote será criado usando a data e hora atuais.
Os exemplos de uso a seguir mostram algumas opções de sintaxe possíveis para o comando de pacote :
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
O bloco a seguir contém exemplos para o comando de pacote :
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
Extrair arquivos de um pacote ou conjunto
Além de empacotar e agrupar aplicativos, MakeAppx.exe também podem desempacotar ou descompactar pacotes existentes. Você deve fornecer o diretório de conteúdo como um destino para os arquivos extraídos. Se você estiver tentando extrair arquivos de um pacote ou pacote criptografado, poderá descriptografar e extrair os arquivos ao mesmo tempo usando a opção /ep e especificando se ele deve ser descriptografado usando um arquivo de chave (/kf) ou a chave de teste global (/kt). Para obter mais informações sobre como descriptografar um pacote ou pacote, consulte Criptografar ou descriptografar um pacote ou pacote.
Opções específicas para desempacotar e descompactar comandos:
| Opção | Descrição |
|---|---|
| /Nd | Não executa a descriptografia ao desempacotar ou separando o pacote/conjunto. |
| /pfn | Empacota/desempacota todos os arquivos em um subdiretório no caminho de saída especificado, com o nome completo do pacote |
Os exemplos de uso a seguir mostram algumas opções de sintaxe possíveis para os comandos unpack e unbundle :
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
O bloco a seguir contém exemplos para usar os comandos unpack e unbundle :
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
Criptografar ou descriptografar um pacote ou conjunto
A ferramenta MakeAppx.exe também pode criptografar ou descriptografar um pacote existente. Você deve simplesmente fornecer o nome do pacote, o nome do pacote de saída e se a criptografia ou descriptografia deve usar um arquivo de chave (/kf) ou a chave de teste global (/kt).
A criptografia e a descriptografia não estão disponíveis por meio do assistente de empacotamento do Visual Studio.
Opções específicas dos comandos de criptografar e descriptografar.
| Opção | Descrição |
|---|---|
| /Ep | Especifica um pacote ou conjunto de aplicativos criptografado. |
Os exemplos de uso a seguir mostram algumas opções de sintaxe possíveis para os comandos criptografar e descriptografar :
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
O bloco a seguir contém exemplos para usar os comandos criptografar e descriptografar :
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
Arquivos de chave
Os arquivos de chave devem começar com uma linha que contenha a cadeia de caracteres "[Chaves]" seguida por linhas que descrevem as chaves com as quais criptografar cada pacote. Cada chave é representada por um par de cadeias de caracteres entre aspas, separadas por espaços ou tabulações. A primeira cadeia de caracteres representa a ID da chave de 32 bytes codificada em base64 e a segunda representa a chave de criptografia de 32 bytes codificada em base64. Um arquivo de chave deve ser um arquivo de texto simples.
Exemplo de um arquivo de chave:
[Keys]
"OWVwSzliRGY1VWt1ODk4N1Q4R2Vqc04zMzIzNnlUREU=" "MjNFTlFhZGRGZEY2YnVxMTBocjd6THdOdk9pZkpvelc="
Arquivos de mapeamento
Os arquivos de mapeamento devem começar com uma linha que contenha a cadeia de caracteres "[Arquivos]" seguida por linhas que descrevem os arquivos a serem adicionados ao pacote. Cada arquivo é descrito por um par de caminhos entre aspas, separados por espaços ou tabulações. Cada arquivo representa sua origem (em disco) e o destino (no pacote). Um arquivo de mapeamento deve ser um arquivo de texto simples.
Exemplo de um arquivo de mapeamento (sem a opção /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"
Ao usar um arquivo de mapeamento, você pode escolher se deseja usar a opção /m. A opção /m permite que o usuário especifique os metadados de recurso no arquivo de mapeamento a serem incluídos no manifesto gerado. Se você usar a opção /m, o arquivo de mapeamento deverá conter uma seção que comece com a linha "[ResourceMetadata]", seguida pelas linhas que especificam "ResourceDimensions" e "ResourceId". É possível que um pacote de aplicativo contenha várias "ResourceDimensions", mas só pode haver uma "ResourceId".
Exemplo de um arquivo de mapeamento (com a opção /m):
[ResourceMetadata]
"ResourceDimensions" "language-en-us"
"ResourceId" "English"
[Files]
"images\en-us\logo.png" "en-us\logo.png"
"en-us.pri" "resources.pri"
Validação semântica executada por MakeAppx.exe
MakeAppx.exe executa uma validação semática limitada projetada para capturar os erros de implantação mais comuns e ajudar a garantir que o pacote do aplicativo seja válido. Consulte a opção /nv se você quiser ignorar a validação ao usar MakeAppx.exe.
Essa validação garante que:
- Todos os arquivos referenciados no manifesto do pacote são incluídos no pacote de aplicativo.
- Um aplicativo não tem duas chaves idênticas.
- Um aplicativo não se registra para um protocolo proibido desta lista: SMB, FILE, MS-WWA-WEB, MS-WWA.
Essa não é uma validação semântica completa, pois é projetada apenas para detectar erros comuns. Os pacotes criados por MakeAppx.exe não têm garantia de serem instaláveis.