Geração de componentes do pacote MSIX

Este artigo mostra como gerar componentes do pacote MSIX para empacotar o aplicativo usando ferramentas de linha de comando (sem usar o Visual Studio ou a Ferramenta de Empacotamento MSIX).

Para empacotar o aplicativo manualmente, é necessário criar um arquivo de manifesto do pacote, adicionar os componentes do pacote e executar a ferramenta de linha de comando MakeAppx.exe para gerar um pacote MSIX.

Primeiro, prepare para empacotar

Caso ainda não tenha feito isso, revise esta seção sobre o que você precisa saber antes de empacotar o aplicativo.

Criar um manifesto do pacote

Crie um arquivo, chame-o de appxmanifest.xml, e, em seguida, adicione esse XML a ele.

É um modelo básico que contém os elementos e atributos de que seu pacote precisa. Vamos adicionar valores a eles na próxima seção.

<?xml version="1.0" encoding="utf-8"?>
<Package
  xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
  xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
  xmlns:uap10="http://schemas.microsoft.com/appx/manifest/uap/windows10/10"
  xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities">
  <Identity Name="" Version="" Publisher="" ProcessorArchitecture="" />
  <Properties>
    <DisplayName></DisplayName>
    <PublisherDisplayName></PublisherDisplayName>
    <Description></Description>
    <Logo></Logo>
  </Properties>
  <Resources>
    <Resource Language="" />
  </Resources>
  <Dependencies>
    <TargetDeviceFamily Name="Windows.Desktop" MinVersion="" MaxVersionTested="" />
  </Dependencies>
  <Capabilities>
    <rescap:Capability Name="runFullTrust"/>
  </Capabilities>
  <Applications>
    <Application Id="" Executable=""
      uap10:RuntimeBehavior="packagedClassicApp"
      uap10:TrustLevel="mediumIL">
      <uap:VisualElements DisplayName="" Description=""	Square150x150Logo=""
        Square44x44Logo="" BackgroundColor="" />
    </Application>
  </Applications>
</Package>

Observação

Se o seu pacote for instalado em sistemas anteriores ao Windows 10, versão 2004 (10.0; Build 19041), use o atributo EntryPoint em vez de uap10:RuntimeBehavior e uap10:TrustLevel. Para obter mais detalhes e exemplos, consulte uap10 foi introduzido no Windows 10, versão 2004 (10.0; Build 19041).

Preencha os elementos em nível de pacote do arquivo

Preencha este modelo com informações que descrevem o pacote.

Informações de identidade

Este é um exemplo do elemento Identity com texto de espaço reservado para os atributos. Você pode definir o atributo ProcessorArchitecture como x64, x86, arm (ou seja, ARM de 32 bits), arm64 ou neutral

<Identity Name="MyCompany.MySuite.MyApp"
          Version="1.0.0.0"
          Publisher="CN=MyCompany, O=MyCompany, L=MyCity, S=MyState, C=MyCountry"
			    ProcessorArchitecture="x64">

Observação

Se tiver reservado o nome do aplicativo na Microsoft Store, será possível obter o Nome e o Editor usando o Partner Center. Se pretende fazer o sideload do aplicativo para outros sistemas, é possível fornecer seus próprios nomes para eles, desde que o nome de editor que você escolher corresponda ao nome no certificado usado para assinar o aplicativo.

Propriedades

O elemento Properties tem 3 elementos filhos necessários. Este é um exemplo do nó Propriedades com texto de espaço reservado para os elementos. O DisplayName é o nome do aplicativo que você reserva na Microsoft Store para aplicativos que são carregados na Microsoft Store.

<Properties>
  <DisplayName>MyApp</DisplayName>
  <PublisherDisplayName>MyCompany</PublisherDisplayName>
  <Logo>images\icon.png</Logo>
</Properties>

Recursos

Este é um exemplo do nó Recursos.

<Resources>
  <Resource Language="en-us" />
</Resources>

Dependências

Nos aplicativos da área de trabalho para os quais você cria um pacote, sempre defina o atributo Name como Windows.Desktop.

<Dependencies>
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.14316.0" MaxVersionTested="10.0.15063.0" />
</Dependencies>

Funcionalidades

Para um pacote que contém um ou mais aplicativos de confiança total, você precisará declarar o recurso restrito runFullTrust, conforme mostrado abaixo. Para obter detalhes completos e uma definição de um aplicativo de confiança total, procure Nível de permissão de confiança total em Declarações de capacidade de aplicativos).

<Capabilities>
  <rescap:Capability Name="runFullTrust"/>
</Capabilities>

Preencha os elementos no nível do aplicativo

Preencha este modelo com informações que descrevem o aplicativo.

Elemento Application

Para aplicativos de área de trabalho para os quais você cria um pacote, configure o elemento Application da seguinte forma:

<Applications>
  <Application Id="MyApp" Executable="MyApp.exe"
		 uap10:RuntimeBehavior="packagedClassicApp"
     uap10:TrustLevel="mediumIL">
   </Application>
</Applications>

Observação

Se o seu pacote for instalado em sistemas anteriores ao Windows 10, versão 2004 (10.0; Build 19041), use o atributo EntryPoint em vez de uap10:RuntimeBehavior e uap10:TrustLevel. Para obter mais detalhes e exemplos, consulte uap10 foi introduzido no Windows 10, versão 2004 (10.0; Build 19041).

Elementos visuais

Este é um exemplo do nó VisualElements.

<uap:VisualElements
	BackgroundColor="#464646"
	DisplayName="My App"
	Square150x150Logo="images\icon.png"
	Square44x44Logo="images\small_icon.png"
	Description="A useful description" />

(Opcional) Adicione ativos não incluídos no destino

Ativos baseados em destino são para ícones e blocos que aparecem na barra de tarefas do Windows, na exibição de tarefas, em ALT+TAB, no snap-assist e no canto inferior direito dos blocos Iniciar. Você pode ler mais sobre isso aqui.

  1. Obtenha as imagens 44x44 corretas e copie-as para a pasta que contém as imagens (ou seja, Ativos).

  2. Para cada imagem 44x44, crie uma cópia na mesma pasta e acrescente .targetsize-44_altform-unplated ao nome do arquivo. Você deve ter duas cópias de cada ícone, cada uma nomeada de uma maneira específica. Por exemplo, depois de concluir o processo, sua pasta de ativos poderá conter MYAPP_44x44.png e MYAPP_44x44.targetsize-44_altform-unplated.png.

    Observação

    Neste exemplo, o ícone chamado MYAPP_44x44.png é o ícone ao qual você vai fazer referência no atributo Square44x44Logo do logotipo do pacote MSIX.

  3. No arquivo de manifesto, defina o BackgroundColor para cada ícone que você está tornando transparente.

  4. Continue até a próxima subseção para gerar um novo arquivo de índice de recurso do pacote.

Gerar um arquivo PRI (índice de recurso do pacote) usando MakePri

Se você criar ativos com base no destino como descrito na seção acima, ou se modificar qualquer um dos ativos visuais do aplicativo depois de criar o pacote, será necessário gerar um novo arquivo PRI.

Com base no caminho da instalação do SDK, é aqui que o MakePri.exe fica localizado no computador com PC Windows:

  • x86: C:\Arquivos de Programas (x86)\Windows Kits\10\bin<número do build>\x86\makepri.exe
  • x64: C:\Arquivos de Programas (x86)\Windows Kits\10\bin<número do build>\x64\makepri.exe

Não existe uma versão para ARM dessa ferramenta.

  1. Abra um Prompt de Comando ou uma janela do PowerShell.

  2. Altere o diretório para a pasta raiz do pacote e crie um arquivo priconfig.xml executando o comando <path>\makepri.exe createconfig /cf priconfig.xml /dq en-US.

  3. Crie os arquivos resources.pri usando o comando <path>\makepri.exe new /pr <PHYSICAL_PATH_TO_FOLDER> /cf <PHYSICAL_PATH_TO_FOLDER>\priconfig.xml.

    Por exemplo, o comando do aplicativo pode ter essa aparência: <path>\makepri.exe new /pr c:\MYAPP /cf c:\MYAPP\priconfig.xml.

  4. Empacote o aplicativo usando as instruções da próxima etapa.

Teste o aplicativo antes de empacotar

Você pode implantar o aplicativo não empacotado e testá-lo antes de empacotar ou assinar. Para isso, execute o cmdlet abaixo de uma janela do PowerShell. Assegure-se de passar o arquivo de manifesto do aplicativo localizado na raiz do diretório com todos os outros componentes de pacote:

Add-AppxPackage –Register AppxManifest.xml

Depois de fazer isso, o aplicativo deverá ser implantado no sistema e você poderá testá-lo para assegurar que tudo esteja funcionando antes de empacotar. Para atualizar os arquivos .exe ou .dll do aplicativo, substitua os arquivos existentes no pacote pelos novos, aumente o número da versão no AppxManifest.xml e execute o comando acima novamente.

Empacote os componentes em um MSIX

A próxima etapa é usar o MakeAppx.exe para gerar um pacote MSIX para o aplicativo. O Makeappx.exe está incluído com o SDK do Windows e, caso você tenha o Visual Studio instalado, ele poderá ser acessado com facilidade pelo Prompt de Comando do Desenvolvedor para Visual Studio.

Consulte Criar um pacote ou grupo MSIX com a ferramenta MakeAppx.exe

Observação

Um aplicativo empacotado sempre é executado como um usuário interativo e qualquer unidade na qual você instale o aplicativo empacotado deve estar formatada em NTFS.