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

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.

  1. Coloque todos os arquivos em uma única estrutura de diretórios, criando subdiretórios conforme desejado.

  2. Crie um manifesto de pacote válido, AppxManifest.xml e coloque-o no diretório raiz.

  3. Execute este comando:

    MakeAppx pack /dinput_directorypath/pcaminho de arquivo.appx

Para criar um pacote usando um arquivo de mapeamento

  1. Crie um manifesto de pacote válido, AppxManifest.xml.

  2. 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"
    
  3. Execute este comando:

    MakeAppx pack /fmapping_filepath/pfilepath.appx

Para assinar o pacote usando o SignTool

  1. 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.

  2. 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

  1. Execute este comando:

    MakeAppx descompactar arquivo /.appx/doutput_directory

  2. 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.

  1. Coloque todos os pacotes em uma única estrutura de diretórios, criando subdiretórios conforme desejado.

  2. 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.

  1. 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"
    
  2. Execute este comando:

    MakeAppx bundle /fmapping_filepath/pfilepath.appxbundle

Para extrair pacotes de um pacote

  1. Execute este comando:

    MakeAppx desempacotar /pbundle_name.appxbundle /doutput_directory

  2. O pacote descompactado tem a mesma estrutura que o pacote de pacote instalado.

Para criptografar um pacote com um arquivo de chave

  1. 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"
    
  2. Execute este comando:

    MakeAppx.exe criptografar /ppackage_name.appx /epencrypted_package_name.eappx /kfkeyfile_name.txt

  3. 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

  1. Execute este comando:

    MakeAppx.exe criptografar /ppackage_name.appx /epencrypted_package_name.eappx /kt

  2. 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

  1. 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="
    
  2. Execute este comando:

    MakeAppx.exe descriptografar /ppackage_name.appx /epunencrypted_package_name.eappx /kfkeyfile_name.txt

  3. 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

  1. Execute este comando:

    MakeAppx.exe descriptografar /ppackage_name.appx /epunencrypted_package_name.eappx /kt

  2. 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.