Criar manualmente um arquivo do Instalador de AplicativoCreate an App Installer file manually

Este artigo mostra como criar manualmente um arquivo do instalador de aplicativo que define um conjunto relacionado.This article shows how to manually create an App Installer file that defines a related set. Um conjunto relacionado não é uma entidade, mas em vez disso, uma combinação de um pacote principal e pacotes opcionais.A related set is not one entity, but rather a combination of a main package and optional packages.

Para poder instalar um conjunto relacionado como uma entidade, nós devemos ser capazes de especificar o pacote principal e o pacote opcional como um.To be able to install a related set as one entity, we must be able to specify the main package and optional package as one. Para fazer isso, será necessário criar um arquivo XML com uma extensão . AppInstaller para definir um conjunto relacionado.To do this, we will need to create an XML file with an .appinstaller extension to define a related set. O instalador do aplicativo consome o arquivo . AppInstaller e permite que o usuário instale todos os pacotes definidos com um único clique.App Installer consumes the .appinstaller file and allows the user to install all of the defined packages with a single click.

Exemplo de arquivo do instalador do aplicativoApp Installer file example

Antes de entrarmos em mais detalhes, aqui está um exemplo completo de arquivo msixbundle *. AppInstaller:Before we go in to more detail, here is a complete sample msixbundle *.appinstaller file:

<?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>
    
    <UpdateSettings>
    <OnLaunch HoursBetweenUpdateChecks="0"/>   
  </UpdateSettings>

</AppInstaller>

Durante a implantação, o arquivo do Instalador de Aplicativo é validado contra os pacotes de aplicativos referenciados no elemento Uri.During deployment, the App Installer file is validated against the app packages referenced in the Uri element. Assim, o Name, Publisher e Version devem corresponder ao elemento Pacote/Identidade no manifesto do conjunto de aplicativo.So, the Name, Publisher and Version should match the Package/Identity element in the app package manifest.

Como criar um arquivo de Instalador de AplicativoHow to create an App Installer file

Para distribuir seu conjunto relacionado como uma entidade, você deve criar um arquivo do Instalador de Aplicativo que contém os elementos que são exigidos pelo Esquema appinstaller.To distribute your related set as one entity, you must create an App Installer file that contains the elements that are required by that appinstaller schema.

Etapa 1: Criar o arquivo *.appinstallerStep 1: Create the *.appinstaller file

Usando um editor de texto, crie um arquivo (que irá conter XML) e nomeie-o <filename>.appinstaller.Using a text editor, create a file (which will contain XML) and name it <filename>.appinstaller

Etapa 2: Adicionar o modelo básicoStep 2: Add the basic template

O modelo básico inclui as informações de arquivo do Instalador de Aplicativo.The basic template includes the App Installer file information.

<?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" >
</AppInstaller>

Etapa 3: Adicionar as informações de pacote principalStep 3: Add the main package information

Se o pacote do aplicativo principal for um arquivo. msix ou. Appx, use <MainPackage> , conforme mostrado abaixo.If the main app package is an .msix or .appx file, then use <MainPackage>, as shown below. Certifique-se de incluir o ProcessorArchitecture, pois ele é obrigatório para pacotes que não são de pacote.Be sure to include the ProcessorArchitecture, as it is mandatory for non-bundle packages.

<?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" >

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

</AppInstaller>

Se o pacote do aplicativo principal for um. msixbundle ou. appxbundle ou arquivo, use o <MainBundle> no lugar de, <MainPackage> conforme mostrado abaixo.If the main app package is an .msixbundle or .appxbundle or file, then use the <MainBundle> in place of <MainPackage> as shown below. Para os pacotes, o ProcessorArchitecture não é necessário.For bundles, ProcessorArchitecture is not required.

<?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" />

</AppInstaller>

As informações no atributo <MainBundle> ou <MainPackage> devem corresponder ao elemento Pacote/Identidade no manifesto do lote de aplicativo ou manifesto do conjunto de aplicativo, respectivamente.The information in the <MainBundle> or <MainPackage> attribute should match the Package/Identity element in the app bundle manifest or app package manifest respectively.

Etapa 4: Adicionar os pacotes opcionaisStep 4: Add the optional packages

Semelhante ao atributo de conjunto de aplicativo principal, se o pacote opcional puder ser um conjunto de aplicativo ou um lote do aplicativo, o elemento filho dentro do atributo <OptionalPackages> deve ser <Package>ou <Bundle>, respectivamente.Similar to the main app package attribute, if the optional package can be either an app package or an app bundle, the child element within the <OptionalPackages> attribute should be <Package> or <Bundle> respectively. As informações nos elementos filho do pacote devem corresponder ao elemento identidade no manifesto do pacote ou lote.The package information in the child elements should match the identity element in the bundle or package manifest.

<?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"
            ProcessorArchitecture="x64"
            Uri="http://mywebservice.azurewebsites.net/OptionalApp3.msix" />

    </OptionalPackages>

</AppInstaller>

Etapa 5: Adicionar dependênciasStep 5: Add dependencies

No elemento de dependências, você pode especificar os pacotes de estrutura necessários para o pacote principal ou para os pacotes opcionais.In the dependencies element, you can specify the required framework packages for the main package or the optional packages.

<?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"
            ProcessorArchitecture="x86"
            Uri="http://mywebservice.azurewebsites.net/OptionalApp3.msix" />

    </OptionalPackages>

    <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 a configuração de atualizaçãoStep 6: Add Update setting

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.The App Installer file can also specify update setting so that the related sets can be automatically updated when a newer App Installer file is published. é um elemento opcional. is an optional element. Na 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.Within the OnLaunch option specifies that update checks should be made on app launch, and HoursBetweenUpdateChecks="12" specifies that an update check should be made every 12 hours. Se HoursBetweenUpdateChecks não for especificado, o intervalo padrão usado para verificar se há atualizações será de 24 horas.If HoursBetweenUpdateChecks is not specified, the default interval used to check for updates is 24 hours. Tipos adicionais de atualizações, como atualizações em segundo plano, podem ser encontrados no esquemade configurações de atualização; Tipos adicionais de atualizações ao iniciar, como atualizações com um prompt, podem ser encontrados no esquema OnLaunchAdditional types of updates, like background updates can be found in the Update Settings schema; Additional types of on-launch updates like updates with a prompt can be found in the OnLaunch schema

<?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"
            ProcessorArchitecture="x86"
            Uri="http://mywebservice.azurewebsites.net/OptionalApp3.msix" />

    </OptionalPackages>

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

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

</AppInstaller>

Para todos os detalhes sobre o esquema XML, consulte Referência de arquivo do Instalador de Aplicativo.For all of the details on the XML schema, see App Installer file reference.

Observação

O tipo de arquivo do instalador do aplicativo é novo no Windows 10, versão 1709 (a atualização dos criadores de outono do Windows 10).The App Installer file type is new in Windows 10, version 1709 (the Windows 10 Fall Creators Update). Não há suporte para a implantação de aplicativos do Windows 10 usando um arquivo do instalador de aplicativos em versões anteriores do Windows 10.There is no support for deployment of Windows 10 apps using an App Installer file on previous versions of Windows 10. O elemento HoursBetweenUpdateChecks está disponível a partir do Windows 10, versão 1803.The HoursBetweenUpdateChecks element is available starting in Windows 10, version 1803.