Criar um arquivo do App Installer manualmente

Este artigo mostra como criar manualmente um arquivo do App Installer 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. Para fazer isso, precisaremos criar um arquivo XML com uma extensão .appinstaller para definir um conjunto relacionado. O App Installer 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 App Installer irá:

  • O Windows app Package referenciado no atributo URI do elemento < MainPackage > irá validar os atributos Name, Publisher e Version dos atributos alvo do Windows app Package. Se o elemento Package/Identity no manifesto do Pacote da aplicação Windows não coincidir, a instalação falhará.
  • Crie uma referência aos URIs de Atualização e Reparação para a família de pacotes.

Como criar um arquivo do App Installer

Para distribuir seu conjunto relacionado como uma entidade, você deve criar um arquivo do App Installer que contenha os elementos exigidos por esse esquema do instalador do aplicativo.

  1. Crie o ficheiro *.AppInstaller.
  2. Especifique os atributos de arquivo do App Installer.
  3. Especifique o pacote de aplicação principal do Windows.
  4. Especifique o pacote opcional relacionado.
  5. Especifique a dependência do Pacote de Estrutura de Aplicações do Windows.
  6. Especifique as definições de atualização.
  7. Especifique os caminhos de atualização do URI.
  8. Especifique os caminhos de URI de reparação.
Exemplo de um arquivo do App Installer

Seguindo as etapas fornecidas acima, você terá criado com êxito um arquivo do App Installer 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: Criar o arquivo *.appinstaller

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

Como:
  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: adicionar o modelo básico

Inclua o AppInstaller elemento no arquivo do App Installer observando a versão, o caminho e o local de rede do arquivo do App Installer. A informação no elemento AppInstaller será consumida ao instalar as aplicações Windows associadas.

Elemento Descrição
xmlns O Namespace XML
Versão A versão do ficheiro do Instalador de Aplicações numa notação quadriculada (1.0.0.0).
URI Um caminho de URI para o arquivo atual do App Installer, acessível pelo dispositivo.
Como:
  1. Abra o ficheiro criado no Passo 1.

  2. Copie o seguinte conteúdo XML para o seu ficheiro *.AppInstaller.

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

  4. Atualize o atributo URI com o local de rede onde este arquivo *AppInstaller ficará acessível.

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

Os <MainPackage> e <MainBundle> são usados para identificar a aplicação principal de Windows que será instalada usando o ficheiro do Instalador de Aplicações. O <MainPackage> é usado quando o instalador da aplicação Windows é um *.msix, ou *.appx. Use o <MainBundle> quando o instalador de aplicações Windows for um instalador de aplicações Windows agrupado, com uma extensão de *.msixbundle ou *.appxbundle.

Elemento Descrição
Nome O nome do aplicativo principal que está sendo distribuído por meio do arquivo do App Installer. Isso pode ser encontrado executando o seguinte cmdlet do PowerShell: $(Get-AppxPackage [AppName]).Name.
Publicador O nome canónico do certificado de publicador usado para assinar o instalador principal de aplicações Windows. Isto pode ser encontrado executando o seguinte cmdlet PowerShell: $(Get-AppxPackage [AppName]).Publisher.
Versão A versão do instalador principal de aplicações do Windows em notação de quatro pontos (1.0.0.0). Isso pode ser encontrado executando o seguinte cmdlet do PowerShell: $(Get-AppxPackage [AppName]).Version.
Arquitetura do Processador A arquitetura onde o instalador principal da aplicação Windows está a instalar.
URI O caminho do URI para o meio principal de instalação da aplicação Windows.

As informações no atributo <MainBundle> ou <MainPackage> devem corresponder ao elemento Package/Identity no manifesto do pacote de aplicações ou no manifesto do pacote da aplicação, conforme aplicável.

Instalador de aplicações Windows

Se o pacote principal da aplicação for um ficheiro .msix ou .appx, então use <MainPackage>, conforme mostrado abaixo. Certifique-se de incluir o ProcessorArchitecture, pois é obrigatório para pacotes que não são bundles.

<?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 de Pacotes de Aplicações Windows

Se o pacote principal do aplicativo for um arquivo .msixbundle ou .appxbundle, use o <MainBundle> no lugar de <MainPackage> , conforme mostrado abaixo. Para pacotes, 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: Adicionar os pacotes opcionais

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

Elemento Descrição
Nome O nome do aplicativo opcional que está sendo distribuído por meio do arquivo do App Installer. Isso pode ser encontrado executando o seguinte cmdlet do PowerShell: $(Get-AppxPackage [AppName]).Name.
Publisher O nome canónico do certificado do editor utilizado para assinar o instalador opcional de apps Windows. Isto pode ser encontrado executando o seguinte cmdlet PowerShell: $(Get-AppxPackage [AppName]).Publisher.
Versão A versão do instalador opcional de aplicações Windows em notação com quatro pontos (1.0.0.0). Isso pode ser encontrado executando o seguinte cmdlet do PowerShell: $(Get-AppxPackage [AppName]).Version.
Arquitetura do Processador A arquitetura onde o instalador opcional da aplicação Windows está a instalar.
URI O caminho do URI para o meio principal de instalação da aplicação 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: Adicionar dependências

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

Elemento Descrição
Nome O nome do aplicativo de dependência que está sendo distribuído por meio do arquivo do App Installer. Isso pode ser encontrado executando o seguinte cmdlet do PowerShell: $(Get-AppxPackage [AppName]).Name.
Editora O nome canónico do certificado de publicador usado para assinar o instalador de aplicações de dependência do Windows. Isto pode ser encontrado executando o seguinte cmdlet PowerShell: $(Get-AppxPackage [AppName]).Publisher.
Versão A versão do instalador de dependências de aplicações Windows em notação quad-pontuada (1.0.0.0). Isso pode ser encontrado executando o seguinte cmdlet do PowerShell: $(Get-AppxPackage [AppName]).Version.
Arquitetura do Processador A arquitetura onde o instalador da aplicação Windows de dependências está a instalar.
URI O caminho do URI para o meio de instalação da aplicação Windows dependente.
<?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: Adicionar configuração de atualização

O arquivo do App Installer 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 App Installer for publicado. <UpdateSettings> é um elemento opcional. Em <UpdateSettings> , a opção OnLaunch especifica que as 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 se há atualizações é de 24 horas. Tipos adicionais de atualizações, como atualizações em segundo plano, podem ser encontrados no esquema de Configurações de Atualização. Tipos adicionais de atualizações no lançamento da aplicação, como atualizações com um prompt, podem ser encontrados no esquema de OnLaunch.

Elementos Descrição
HorasEntreVerificaçõesDeAtualização Define o intervalo mínimo nas verificações de atualização de aplicações do Windows.
AtualizarAtivaçãoDeBlocos Define a experiência quando uma atualização de aplicativo é verificada.
ShowPrompt Define se uma janela é exibida quando as atualizações estão sendo instaladas e quando as atualizações estão sendo verificadas.
ActualizarDeQualquerVersão Especifica que a próxima versão do aplicativo pode ser para uma versão mais recente ou mais antiga. Se Verdadeiro, será para todos; se Falso (padrão), apenas as 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: Adicionar configurações de atualização automática

Importante

As seguintes definições exigem a versão do esquema de 2021 no seu ficheiro .appinstaller e Windows 10, versão 2004 (build 19041) ou posterior.

Estas definições permitem atualizar a aplicação Windows a partir do URI do Instalador de Aplicações, seguindo as configurações definidas no passo anterior. Os URIs de atualização configurados nesta etapa atuarão como URIs de fallback que podem ser usados se o URI original do App Installer não estiver mais acessível. Pode ser configurado um máximo de 10 URIs de atualização para qualquer aplicação Windows.

Os URIs de atualização devem direcionar os ficheiros do Instalador de Aplicações.

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: Adicionar configurações de reparo automático

Importante

As seguintes definições exigem a versão do esquema de 2021 no seu ficheiro .appinstaller e Windows 10, versão 2004 (build 19041) ou posterior.

Estas definições permitem a reparação da aplicação Windows quando esta foi alterada. O instalador de origem usado para reparar a aplicação pode ser configurado usando a <RepairURIs> propriedade. A aplicação Windows tentará reparar-se sozinha com base no URI do Instalador de Aplicações; se for inacessível, usará os URIs de Reparação para identificar uma fonte de reparação. Pode ser configurado um máximo de 10 URIs de Reparação para qualquer aplicação Windows.

Os URIs de reparação podem direcionar aplicações do Windows ou ficheiros do Instalador de Aplicações. Esta definição não exige que a aplicação Windows tenha sido instalada usando um ficheiro do Instalador de Aplicações.

<?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 do arquivo do App Installer.

Observação

O tipo de ficheiro do Instalador de Aplicações é novo no Windows 10, versão 1709 (Atualização Windows 10 Fall Creators). Não há suporte para a implementação de aplicações do Windows 10 usando um ficheiro de Instalador de Aplicações nas versões anteriores do Windows 10. O elemento HoursBetweenUpdateChecks está disponível a partir de Windows 10, versão 1803.