Empacotador de aplicativo (MakeAppx.exe)
Observação
Para obter orientação da UWP sobre como usar essa ferramenta, consulte Criar um pacote de aplicativo com a ferramenta MakeAppx.exe.
O empacotador de aplicativos (MakeAppx.exe) cria um pacote de aplicativo a partir de arquivos em disco ou extrai os arquivos de um pacote de aplicativo para o disco. A partir do Windows 8.1, o App packager também cria um pacote de pacotes de aplicativos a partir de pacotes de aplicativos em disco ou extrai os pacotes de aplicativos de um pacote de pacotes de aplicativos para disco. Ele está incluído no Microsoft Visual Studio e no Windows Software Development Kit (SDK) para Windows 8 ou Windows Software Development Kit (SDK) para Windows 8.1 e mais recente. Visite Downloads para desenvolvedores obtê-los.
A ferramenta MakeAppx.exe é normalmente encontrada em locais específicos da versão do sistema operacional:
- C:\Arquivos de Programas (x86)\Windows Kits\10\bin<arquitetura> de número de compilação><\makeappx.exe
Onde <arquitetura> = x86, x64, arm, ar64 ou chpe. Como alternativa, pode estar localizado em:
C:\Program Files (x86)\Windows Kits\10\App Certification Kit\makeappx.exe
- Para criar um pacote usando uma estrutura de diretórios
- Para criar um pacote usando um arquivo de mapeamento
- Para assinar o pacote usando o SignTool
- Para extrair arquivos de um pacote
- Para criar um pacote de pacotes usando uma estrutura de diretórios
- Para criar um pacote de pacotes usando um arquivo de mapeamento
- Para extrair pacotes de um pacote
- Para criptografar um pacote com um arquivo de chave
- Para criptografar um pacote com uma chave de teste global
- Para descriptografar um pacote com um arquivo de chave
- Para descriptografar um pacote com uma chave de teste global
- Uso
Usando o empacotador de aplicativos
Observação
Há suporte para caminhos relativos em toda a ferramenta.
Para criar um pacote usando uma estrutura de diretórios
Coloque o AppxManifest.xml na raiz de um diretório que contém todos os arquivos de carga útil do seu aplicativo. Uma estrutura de diretório idêntica é criada para o pacote do aplicativo e estará disponível quando o pacote for extraído no momento da implantação.
Coloque todos os arquivos em uma única estrutura de diretórios, criando subdiretórios conforme desejado.
Crie um manifesto de pacote válido, AppxManifest.xml e coloque-o no diretório raiz.
Execute este comando:
MakeAppx pack /dinput_directorypath/pcaminho de arquivo.appx
Para criar um pacote usando um arquivo de mapeamento
Crie um manifesto de pacote válido, AppxManifest.xml.
Crie um arquivo de mapeamento. A primeira linha contém a cadeia de caracteres [Files], e as linhas a seguir especificam os caminhos de origem (disco) e destino (pacote) em cadeias de caracteres entre aspas.
[Files] "C:\MyApp\StartPage.htm" "default.html" "C:\MyApp\readme.txt" "doc\readme.txt" "\\MyServer\path\icon.png" "icon.png" "MyCustomManifest.xml" "AppxManifest.xml"
Execute este comando:
MakeAppx pack /fmapping_filepath/pfilepath.appx
Para assinar o pacote usando o SignTool
Criar o certificado. O editor listado no manifesto deve corresponder às informações do assunto do editor do certificado de assinatura. Para obter mais informações sobre como criar um certificado de assinatura, consulte Como criar um certificado de assinatura de pacote de aplicativo.
Execute SignTool.exe para assinar o pacote:
SignTool sinal /a /v /fd hashAlgorithm/fcertFileNamefilepath.appx
O hashAlgorithm deve corresponder ao algoritmo de hash usado para criar o mapa de blocos quando o aplicativo foi empacotado. Com o utilitário de empacotamento MakeAppx, o algoritmo de hash de mapa de bloco Appx padrão é SHA256. Execute SignTool.exe especificando SHA256 como o algoritmo de resumo do arquivo (/fd):
SignTool sinal /a /v /fd SHA256 /fcertFileNamecaminho do arquivo.appx
Para obter mais informações sobre como assinar pacotes, consulte Como assinar um pacote de aplicativo usando o SignTool.
Para extrair arquivos de um pacote
Execute este comando:
MakeAppx descompactar arquivo /.appx/doutput_directory
O pacote descompactado tem a mesma estrutura que o pacote instalado.
Para criar um pacote de pacotes usando uma estrutura de diretórios
Usamos o comando bundle para criar um pacote de aplicativos no <nome> do pacote de saída, adicionando todos os pacotes do diretório> de <conteúdo (incluindo subpastas). Se <o diretório de> conteúdo contiver um manifesto de pacote, AppxBundleManifest.xml, ele será ignorado.
Coloque todos os pacotes em uma única estrutura de diretórios, criando subdiretórios conforme desejado.
Execute este comando:
Pacote MakeAppx /dinput_directorypath/pfilepath.appxbundle
Para criar um pacote de pacotes usando um arquivo de mapeamento
Usamos o comando bundle para criar um pacote de aplicativos no nome> do pacote de saída, adicionando todos os pacotes de uma lista de pacotes no <<arquivo> de mapeamento. Se <o arquivo> de mapeamento contiver um manifesto de pacote, AppxBundleManifest.xml, ele será ignorado.
Crie um arquivo> de <mapeamento. A primeira linha contém a cadeia de caracteres [Files], e as linhas a seguir especificam os pacotes a serem adicionados ao pacote. Cada pacote é descrito por um par de caminhos entre aspas, separados por espaços ou guias. O par de caminhos representa a origem (no disco) e o destino (no pacote) do pacote. Todos os nomes de pacotes de destino devem ter a extensão .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"
Execute este comando:
MakeAppx bundle /fmapping_filepath/pfilepath.appxbundle
Para extrair pacotes de um pacote
Execute este comando:
MakeAppx desempacotar /pbundle_name.appxbundle /doutput_directory
O pacote descompactado tem a mesma estrutura que o pacote de pacote instalado.
Para criptografar um pacote com um arquivo de chave
Crie um arquivo de chave. Os arquivos de chave devem começar com uma linha contendo a cadeia de caracteres "[Keys]" seguida por linhas descrevendo as chaves para criptografar o pacote. Cada chave é descrita por um par de cadeias de caracteres entre aspas, separadas por espaços ou tabulações. A primeira cadeia de caracteres representa o ID da chave e a segunda cadeia de caracteres representa a chave de criptografia em formato hexadecimal.
[Keys] "0" "1AC4CDCFF1924D2885A0607269787BA6BF09B7FFEBF74ED4B9D86E423CF9186B"
Execute este comando:
MakeAppx.exe criptografar /ppackage_name.appx /epencrypted_package_name.eappx /kfkeyfile_name.txt
O pacote de entrada será criptografado no pacote criptografado especificado usando o arquivo de chave fornecido.
Para criptografar um pacote com uma chave de teste global
Execute este comando:
MakeAppx.exe criptografar /ppackage_name.appx /epencrypted_package_name.eappx /kt
O pacote de entrada será criptografado no pacote criptografado especificado usando a chave de teste global.
Para descriptografar um pacote com um arquivo de chave
Crie um arquivo de chave. Os arquivos de chave devem começar com uma linha contendo a cadeia de caracteres "[Keys]" seguida por linhas descrevendo as chaves para criptografar o pacote. Cada chave é descrita por um par de cadeias de caracteres entre aspas, separadas por espaços ou tabulações. A primeira cadeia de caracteres representa o ID de chave de 32 bytes codificado em base64 e a segunda cadeia de caracteres representa a chave de criptografia de 32 bytes codificada em base64.
[Keys] "OWVwSzliRGY1VWt1ODk4N1Q4R2Vqc04zMzIzNnlUREU=" "MjNFTlFhZGRGZEY2YnVxMTBocjd6THdOdk9pZkpvelc="
Execute este comando:
MakeAppx.exe descriptografar /ppackage_name.appx /epunencrypted_package_name.eappx /kfkeyfile_name.txt
O pacote de entrada será descriptografado no pacote não criptografado especificado usando o arquivo de chave fornecido.
Para descriptografar um pacote com uma chave de teste global
Execute este comando:
MakeAppx.exe descriptografar /ppackage_name.appx /epunencrypted_package_name.eappx /kt
O pacote de entrada será descriptografado no pacote não criptografado especificado usando a chave de teste global.
Uso
O argumento de linha de comando /p é sempre necessário, com /d, /f ou /ep. Observe que /d, /f e /ep são mutuamente exclusivos.
MakeAppx pack [opções]/p<nome> do pacote de saída/d<diretório de conteúdo>
MakeAppx pack [opções]/p<nome> do pacote de saída/f<arquivo de mapeamento>
MakeAppx descompactar [opções]/p<nome> do pacote de entrada/d<diretório de saída>
Pacote MakeAppx [opções]/p<nome do> pacote de saída/d<diretório de conteúdo>
Pacote MakeAppx [opções]/p<nome do> pacote de saída/arquivo de mapeamento f<>
MakeAppx desempacotar [options]/p<nome> do pacote de entrada/d<diretório de saída>
MakeAppx criptografar [opções]/p<nome do pacote de entrada/ep nome> do pacote de saída ep<>
MakeAppx descriptografar [opções]/p<nome do pacote de entrada/ep nome> do pacote de saída ep<>
Sintaxe da linha de comando
Aqui está a sintaxe de uso comum de linha de comando para MakeAppx.
MakeAppx [pack|unpack|bundle|unbundle|encrypt|decrypt] [/h/kf/kt/l/o/no/nv/v/pfn/?]
O MakeAppx empacota ou descompacta os arquivos em um pacote, agrupa ou desempacota os pacotes em um pacote ou criptografa ou descriptografa o pacote ou pacote do aplicativo no diretório de entrada ou no arquivo de mapeamento especificado. Aqui está a lista de parâmetros que se aplicam ao pacote MakeAppx, descompactar MakeAppx, pacote MakeAppx, desempacotar MakeAppx, criptografar MakeAppx ou descriptografar MakeAppx.
-
/l
-
Essa opção é usada para pacotes localizados. A validação padrão é disparada em pacotes localizados. Essa opção desabilita apenas essa validação específica, sem exigir que toda a validação seja desabilitada.
-
/o
-
Substitua o arquivo de saída, se ele existir. Se você não especificar essa opção ou a opção /no , o usuário será perguntado se deseja substituir o arquivo.
Você não pode usar essa opção com /no.
-
/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á perguntado se deseja substituir o arquivo.
Não é possível usar essa opção com /o.
-
/Nv
-
Ignorar validação semântica. Se você não especificar essa opção, a ferramenta realizará uma validação completa do pacote.
-
/v
-
Habilite a saída de log detalhado para o console.
-
/?
-
Exibir texto de ajuda.
MakeAppx pack , MakeAppx unpack , MakeAppx bundle, MakeAppx unbundle, MakeAppx encrypt e MakeAppx decrypt são comandos mutuamente exclusivos. Aqui estão os parâmetros de linha de comando que se aplicam especificamente a cada comando:
Pacote MakeAppx [h]
Cria um pacote.
-
Algoritmo /h
-
Especifica o algoritmo de hash a ser usado ao criar o mapa de blocos. Aqui estão os valores válidos para o algoritmo:
- SHA256 (padrão)
- SHA384
- SHA512
Não é possível usar essa opção com o comando unpack .
Descompactar do MakeAppx [pfn]
Extrai todos os arquivos do pacote especificado para o diretório de saída especificado. A saída tem a mesma estrutura de diretórios que o pacote.
-
/pfn
-
Especifica um diretório nomeado com o nome completo do pacote. Esse diretório é criado no local de saída fornecido. Não é possível usar essa opção com o comando pack .
Desempacotamento do MakeAppx [pfn]
Descompacta todos os pacotes em um subdiretório sob o caminho de saída especificado, nomeado após o nome completo do pacote. A saída tem a mesma estrutura de diretórios que o pacote de pacotes instalado.
-
/pfn
-
Especifica um diretório nomeado com o nome completo do pacote de pacotes. Esse diretório é criado no local de saída fornecido. Não é possível usar essa opção com o comando bundle .
MakeAppx criptografar [kf, kt]
Cria um pacote de aplicativo criptografado a partir do pacote de aplicativo de entrada especificado no pacote de saída especificado.
-
Arquivo de chave /kf<>
-
Criptografa o pacote ou pacote usando a chave do arquivo de chave especificado. Você não pode usar essa opção com kt.
-
/Kt
-
Criptografa o pacote ou pacote usando a chave de teste global. Você não pode usar essa opção com kf.
MakeAppx descriptografar [kf, kt]
Cria um pacote de aplicativo não criptografado a partir do pacote de aplicativo de entrada especificado no pacote de saída especificado.
-
Arquivo de chave /kf<>
-
Descriptografa o pacote ou pacote usando a chave do arquivo de chave especificado. Você não pode usar essa opção com kt.
-
/Kt
-
Descriptografa o pacote ou pacote usando a chave de teste global. Você não pode usar essa opção com kf.
Validação semântica realizada pelo MakeAppx
O MakeAppx executa validação semântica limitada projetada para capturar os erros de implantação mais comuns e ajudar a garantir que o pacote do aplicativo seja válido.
Essa validação garante que:
- Todos os arquivos referenciados no manifesto do pacote sejam incluídos no pacote do aplicativo.
- Um aplicativo não tenha duas chaves idênticas.
- Um aplicativo não se registra para um protocolo proibido desta lista: SMB , FILE, MS-WWA-WEB, MS-WWA.
Essa validação semântica não está completa, e os pacotes criados pelo MakeAppx não têm garantia de serem instaláveis.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de