Criar um arquivo do Instalador de Aplicativo manualmente

Este artigo mostra como criar manualmente um arquivo do Instalador de Aplicativo que define um conjunto relacionado com recursos de atualização e reparo automáticos. Um conjunto relacionado não é uma entidade, mas sim uma combinação de um pacote principal e pacotes opcionais.

Para poder instalar um conjunto relacionado como uma entidade, devemos ser capazes de especificar o pacote principal e o pacote opcional como um só. Para fazer isso, precisaremos criar um arquivo XML com uma extensão .appinstaller para definir um conjunto relacionado. O Instalador de Aplicativo consome o arquivo *.appinstaller e permite que o usuário instale todos os pacotes definidos com um único clique.

Durante a implantação, o arquivo do Instalador de Aplicativo vai:

  • O Pacote do aplicativo do Windows referenciado no atributo URI do elemento < MainPackage > validará Name e Publisher e Version dos atributos do Pacote do aplicativo do Windows de destino. Se o elemento Package/Identity no manifesto do pacote do aplicativo Windows não for correspondente, a instalação falhará.
  • Crie uma referência aos URIs de Atualização e Reparo para a família do pacote.

Como criar um arquivo de instalador de aplicativo

Para distribuir seu conjunto relacionado como uma entidade, você deve criar um arquivo do Instalador de Aplicativo que contenha os elementos exigidos pelo esquema do instalador do aplicativo.

  1. Crie o arquivo *.AppInstaller.
  2. Especifique os atributos do arquivo do Instalador de Aplicativo.
  3. Especifique o pacote principal do aplicativo do Windows.
  4. Especifique o conjunto relacionado Pacote Opcional.
  5. Especifique o Pacote de Estrutura do aplicativo do Windows de dependência.
  6. Especifique os caminhos de URI de Atualização.
  7. Especifique os caminhos de URI de Reparo.
  8. Especifique as Configurações de Atualização.
Exemplo de arquivo do Instalador de Aplicativo

Seguindo as etapas fornecidas acima, você criará com êxito um arquivo do Instalador de Aplicativo semelhante ao seguinte:

<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
    xmlns="http://schemas.microsoft.com/appx/appinstaller/2017/2"
    Version="1.0.0.0"
    Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >

    <MainBundle
        Name="Contoso.MainApp"
        Publisher="CN=Contoso"
        Version="2.23.12.43"
        Uri="http://mywebservice.azurewebsites.net/mainapp.msixbundle" />

    <OptionalPackages>
        <Bundle
            Name="Contoso.OptionalApp1"
            Publisher="CN=Contoso"
            Version="2.23.12.43"
            Uri="http://mywebservice.azurewebsites.net/OptionalApp1.msixbundle" />

        <Bundle
            Name="Contoso.OptionalApp2"
            Publisher="CN=Contoso"
            Version="2.23.12.43"
            Uri="http://mywebservice.azurewebsites.net/OptionalApp2.msixbundle" />

        <Package
            Name="Fabrikam.OptionalApp3"
            Publisher="CN=Fabrikam"
            Version="10.34.54.23"
            Uri="http://mywebservice.azurewebsites.net/OptionalApp3.msix"
            ProcessorArchitecture="x64" />
    </OptionalPackages>

    <UpdateURIs>
        <UpdateURI>http://mywebservice.azurewebsites.net/appset.appinstaller</UpdateURI>
        <UpdateURI>http://mywebservice2.azurewebsites.net/appset.appinstaller</UpdateURI>
    </UpdateURIs>

    <RepairURIs>
        <RepairURI>http://mywebservice.azurewebsites.net/appset.appinstaller</RepairURI>
        <RepairURI>http://mywebservice2.azurewebsites.net/appset.appinstaller</RepairURI>
    </RepairURIs>

    <UpdateSettings>
        <OnLaunch HoursBetweenUpdateChecks="0"/>   
    </UpdateSettings>

</AppInstaller>

Etapa 1: crie o arquivo *.appinstaller

Usando um editor de texto (Notepad.exe), crie um novo arquivo com uma extensão de nome de arquivo *. AppInstaller

Como fazer:
  1. Abra o Menu Iniciar.
  2. Digite o seguinte: notepad.exe.
  3. Abra o Menu Arquivo.
  4. Selecione Salvar como no menu suspenso.

Etapa 2: adicione o modelo básico

Inclua o elemento AppInstaller em seu arquivo do Instalador de Aplicativo, observando a versão, o caminho e o local de rede do arquivo do Instalador de Aplicativo. As informações no elemento AppInstaller serão consumidas ao instalar os aplicativos do Windows associados.

Element Descrição
xmlns O Namespace XML
Versão A versão do arquivo do Instalador de Aplicativo em notação com quatro pontos (1.0.0.0).
URI Um caminho de URI para o arquivo atual do Instalador de Aplicativo, acessível pelo dispositivo.
Como fazer:
  1. Abra o arquivo criado na Etapa 1.

  2. Copie o conteúdo XML a seguir para seu arquivo *.AppInstaller.

    <?xml version="1.0" encoding="utf-8"?>
    <AppInstaller
        xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
        Version=""
        Uri="" >
    </AppInstaller>
    
  3. Atualize o atributo Version com a versão do arquivo do Instalador de Aplicativo

  4. Atualize o atributo URI com o local de rede em que esse arquivo *.AppInstaller estará acessível.

Etapa 3: adicione as informações principais do pacote

<MainPackage> e <MainBundle> usados para identificar o aplicativo principal do Windows que será instalado usando o arquivo Instalador de Aplicativo. <MainPackage> é usado quando o Instalador de Aplicativo do Windows é *.msix ou *.appx. Use <MainBundle> quando o Instalador de Aplicativo do Windows for um Instalador de Aplicativo do Windows incluído, com uma extensão *.msixbundle ou *.appxbundle.

Element Descrição
Nome O nome do aplicativo principal que está sendo distribuído por meio do arquivo do Instalador de Aplicativo. Para encontrar isso, execute o seguinte cmdlet do PowerShell: $(Get-AppxPackage [AppName]).Name.
Editor O nome canônico do certificado do editor usado para assinar o Instalador de Aplicativo principal do Windows. Para encontrar isso, execute o seguinte cmdlet do PowerShell: $(Get-AppxPackage [AppName]).Publisher.
Versão A versão do Instalador de Aplicativo principal do Windows em notação com quatro pontos (1.0.0.0). Para encontrar isso, execute o seguinte cmdlet do PowerShell: $(Get-AppxPackage [AppName]).Version.
ProcessorArchitecture A arquitetura na qual o Instalador de Aplicativo principal do Windows está sendo instalado.
URI O caminho do URI para a mídia de instalação de aplicativo principal do Windows.

As informações no atributo <MainBundle> ou <MainPackage> devem corresponder ao elemento Package/Identity no manifesto do lote de aplicativo ou no manifesto do pacote de aplicativo, respectivamente.

Instalador de aplicativo do Windows

Se o pacote do aplicativo principal for um arquivo .msix ou .appx, use <MainPackage>, conforme mostrado abaixo. Inclua ProcessorArchitecture, pois é obrigatório para pacotes que não são lotes.

<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
    xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
    Version="1.0.0.0"
    Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >

    <MainPackage
        Name="Contoso.MainApp"
        Publisher="CN=Contoso"
        Version="2.23.12.43"
        ProcessorArchitecture="x64"
        Uri="http://mywebservice.azurewebsites.net/mainapp.msix" />

</AppInstaller>
Instalador do lote de aplicativos do Windows

Se o pacote do aplicativo principal for .msixbundle, .appxbundle ou um arquivo, use <MainBundle> no lugar de <MainPackage>, conforme mostrado abaixo. Para lotes, ProcessorArchitecture não é necessário.

<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
    xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
    Version="1.0.0.0"
    Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >

    <MainBundle
        Name="Contoso.MainApp"
        Publisher="CN=Contoso"
        Version="2.23.12.43"
        Uri="http://mywebservice.azurewebsites.net/mainapp.msixbundle" />

</AppInstaller>

Etapa 4: adicione os pacotes opcionais

Semelhante ao atributo principal do pacote do aplicativo, se o pacote opcional puder ser um pacote do aplicativo ou um lote de aplicativos, o elemento filho no atributo <OptionalPackages> deverá ser <Package> ou <Bundle> respectivamente. As informações do pacote nos elementos filhos devem corresponder ao elemento de identidade no lote ou manifesto do pacote.

Element Descrição
Nome O nome do aplicativo opcional que está sendo distribuído por meio do arquivo do Instalador de Aplicativo. Para encontrar isso, execute o seguinte cmdlet do PowerShell: $(Get-AppxPackage [AppName]).Name.
Editor O nome canônico do certificado do editor usado para assinar o Instalador de Aplicativo opcional do Windows. Para encontrar isso, execute o seguinte cmdlet do PowerShell: $(Get-AppxPackage [AppName]).Publisher.
Versão A versão do Instalador de Aplicativo opcional do Windows em notação com quatro pontos (1.0.0.0). Para encontrar isso, execute o seguinte cmdlet do PowerShell: $(Get-AppxPackage [AppName]).Version.
ProcessorArchitecture A arquitetura na qual o Instalador de Aplicativo opcional do Windows está sendo instalado.
URI O caminho do URI para a mídia de instalação de aplicativo principal do Windows.
<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
    xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
    Version="1.0.0.0"
    Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >

    <MainBundle
        Name="Contoso.MainApp"
        Publisher="CN=Contoso"
        Version="2.23.12.43"
        Uri="http://mywebservice.azurewebsites.net/mainapp.msixbundle" />

    <OptionalPackages>
        <Bundle
            Name="Contoso.OptionalApp1"
            Publisher="CN=Contoso"
            Version="2.23.12.43"
            Uri="http://mywebservice.azurewebsites.net/OptionalApp1.msixbundle" />

        <Package
            Name="Fabrikam.OptionalApp3"
            Publisher="CN=Fabrikam"
            Version="10.34.54.23"
            ProcessorArchitecture="x64"
            Uri="http://mywebservice.azurewebsites.net/OptionalApp3.msix" />

    </OptionalPackages>

</AppInstaller>

Etapa 5: adicione as dependências

No elemento dependencies, você pode especificar os pacotes de estrutura necessários para o pacote principal ou os pacotes opcionais.

Element Descrição
Nome O nome do aplicativo de dependência que está sendo distribuído por meio do arquivo do Instalador de Aplicativo. Para encontrar isso, execute o seguinte cmdlet do PowerShell: $(Get-AppxPackage [AppName]).Name.
Editor O nome canônico do certificado do editor usado para assinar o Instalador de Aplicativo do Windows de dependência. Para encontrar isso, execute o seguinte cmdlet do PowerShell: $(Get-AppxPackage [AppName]).Publisher.
Versão A versão do Instalador de Aplicativo do Windows de dependência em notação com quatro pontos (1.0.0.0). Para encontrar isso, execute o seguinte cmdlet do PowerShell: $(Get-AppxPackage [AppName]).Version.
ProcessorArchitecture A arquitetura na qual o Instalador de Aplicativo do Windows de dependência está sendo instalado.
URI O caminho do URI para a mídia de instalação do aplicativo do Windows de dependência.
<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
    xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
    Version="1.0.0.0"
    Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >

    <MainBundle
        Name="Contoso.MainApp"
        Publisher="CN=Contoso"
        Version="2.23.12.43"
        Uri="http://mywebservice.azurewebsites.net/mainapp.msixbundle" />

    <Dependencies>
        <Package 
            Name="Microsoft.VCLibs.140.00" 
            Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" 
            Version="14.0.24605.0" ProcessorArchitecture="x86" Uri="http://foobarbaz.com/fwkx86.appx" />
        <Package 
            Name="Microsoft.VCLibs.140.00" 
            Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" 
            Version="14.0.24605.0" 
            ProcessorArchitecture="x64" 
            Uri="http://foobarbaz.com/fwkx64.appx" />
    </Dependencies>

</AppInstaller>

Etapa 6: adicione a configuração de atualização

O arquivo do Instalador de Aplicativo também pode especificar a configuração de atualização para que os conjuntos relacionados possam ser atualizados automaticamente quando um arquivo mais recente do Instalador de Aplicativo for publicado. <UpdateSettings> é um elemento opcional. Em <UpdateSettings>, a opção OnLaunch especifica que verificações de atualização devem ser feitas na inicialização do aplicativo e HoursBetweenUpdateChecks="12" especifica que uma verificação de atualização deve ser feita a cada 12 horas. Se HoursBetweenUpdateChecks não for especificado, o intervalo padrão usado para verificar atualizações será de 24 horas. Tipos adicionais de atualizações, como atualizações em segundo plano, podem ser encontrados no esquema Configurações de Atualização; tipos adicionais de atualizações na inicialização, como atualizações com um prompt, podem ser encontrados no esquema OnLaunch

Elementos Descrição
HoursBetweenUpdateChecks Define a lacuna mínima nas verificações de atualização de aplicativos do Windows.
UpdateBlocksActivation Define a experiência quando uma atualização de aplicativo é verificada.
ShowPrompt Define se uma janela será exibida ao instalar e ao verificar a presença de atualizações.
ForceUpdateFromAnyVersion Especifica que a próxima versão do aplicativo pode ser para uma versão mais recente ou mais antiga. Se for True, será para ambos, se for False (padrão), apenas novas versões serão instaladas.
<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
    xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
    Version="1.0.0.0"
    Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >

    <MainBundle
        Name="Contoso.MainApp"
        Publisher="CN=Contoso"
        Version="2.23.12.43"
        Uri="http://mywebservice.azurewebsites.net/mainapp.msixbundle" />

    <UpdateSettings>
        <OnLaunch 
            HoursBetweenUpdateChecks="12"
            UpdateBlocksActivation="true"
            ShowPrompt="true" />
        <AutomaticBackgroundTask />
        <ForceUpdateFromAnyVersion>true</ForceUpdateFromAnyVersion>
    </UpdateSettings>

</AppInstaller>

Etapa 7: adicione configurações de atualização automática

Importante

As configurações a seguir só estão disponíveis ao usar o esquema 2021 em uma versão do Windows Insider do Windows 10.

Os aplicativos do Windows instalados com um arquivo do Instalador de Aplicativo atualizarão seu aplicativo do Windows por padrão por meio do URI do Instalador de Aplicativo, aderindo às configurações definidas na etapa anterior. Os URIs de atualização configurados nesta etapa atuarão como URIs substitutos que poderão ser usados se o URI do Instalador de Aplicativo original não estiver mais acessível. Um máximo de 10 URIs de atualização podem ser configurados para qualquer aplicativo do Windows.

Os URIs de atualização devem ter como alvo os arquivos do Instalador de Aplicativo.

Observação

Essas configurações só funcionam quando o esquema é configurado como 2021 ou mais recente.

<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
    xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
    Version="1.0.0.0"
    Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >

    <MainBundle
        Name="Contoso.MainApp"
        Publisher="CN=Contoso"
        Version="2.23.12.43"
        Uri="http://mywebservice.azurewebsites.net/mainapp.msixbundle" />

    <UpdateSettings>
        <OnLaunch 
            HoursBetweenUpdateChecks="12" />
    </UpdateSettings>

    <UpdateUris>
        <UpdateUri>https://www.contoso.com/Installers/MainApp.AppInstaller</UpdateUri>
        <UpdateUri>\\ServerName\Share\Installers\MainApp.AppInstaller</UpdateUri>
    </UpdateUris>

</AppInstaller>

Etapa 8: adicione configurações de reparo automático

Importante

As configurações a seguir só estão disponíveis ao usar o esquema 2021 em uma versão do Windows Insider do Windows 10.

Os aplicativos do Windows instalados em um dispositivo poderão dar suporte ao reparo automático do aplicativo do Windows quando ele for adulterado. O instalador de origem que será usado para reparar o aplicativo do Windows pode ser configurado usando a propriedade <RepairURIs>. O aplicativo do Windows tentará se reparar com base no URI do Instalador de Aplicativo; se estiver inacessível, o aplicativo do Windows usará os URIs de reparo para identificar uma fonte de reparo. No máximo 10 URIs de reparo podem ser configurados para qualquer aplicativo do Windows.

Os URIs de reparo podem ter como alvo arquivos de aplicativos do Windows ou do Instalador de Aplicativo. Essa configuração não exige que o aplicativo do Windows tenha sido instalado usando um arquivo do Instalador de Aplicativo.

<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
    xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
    Version="1.0.0.0"
    Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >

    <MainBundle
        Name="Contoso.MainApp"
        Publisher="CN=Contoso"
        Version="2.23.12.43"
        Uri="http://mywebservice.azurewebsites.net/mainapp.msixbundle" />

    <UpdateSettings>
        <OnLaunch 
            HoursBetweenUpdateChecks="12" />
    </UpdateSettings>

    <RepairUris>
        <RepairUri></RepairUri>
        <RepairUri></RepairUri>
    </RepairUris>

</AppInstaller>

Para obter todos os detalhes sobre o esquema XML, consulte Referência de arquivo do Instalador de Aplicativo.

Observação

O tipo de arquivo do Instalador de Aplicativo é novo no Windows 10, versão 1709 (o Windows 10 Fall Creators Update). Não há suporte para implantação de aplicativos do Windows 10 usando um arquivo do Instalador de Aplicativo em versões anteriores do Windows 10. O elemento HoursBetweenUpdateChecks está disponível a partir do Windows 10, versão 1803.