Creación manual de un archivo Instalador de aplicaciónCreate an App Installer file manually

En este artículo se muestra cómo crear manualmente un archivo de instalador de la aplicación que define un conjunto relacionado.This article shows how to manually create an App Installer file that defines a related set. Un conjunto relacionado no es una entidad, sino una combinación de un paquete principal y paquetes opcionales.A related set is not one entity, but rather a combination of a main package and optional packages.

Para poder instalar un conjunto relacionado como una entidad, es necesario poder especificar el paquete principal y el paquete opcional como uno.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 ello, será necesario crear un archivo XML con una extensión . AppInstaller para definir un conjunto relacionado.To do this, we will need to create an XML file with an .appinstaller extension to define a related set. El instalador de aplicaciones consume el archivo . AppInstaller y permite al usuario instalar todos los paquetes definidos con un solo clic.App Installer consumes the .appinstaller file and allows the user to install all of the defined packages with a single click.

Ejemplo de archivo de instalador de aplicacionesApp Installer file example

Antes de entrar en más detalles, aquí se muestra un archivo completo de ejemplo 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 la implementación, el archivo del instalador de la aplicación se valida con los paquetes de la aplicación a los que se hace referencia en el Uri elemento.During deployment, the App Installer file is validated against the app packages referenced in the Uri element. Por lo tanto Name , Publisher y Version deben coincidir con el elemento de paquete/identidad en el manifiesto del paquete de la aplicación.So, the Name, Publisher and Version should match the Package/Identity element in the app package manifest.

Cómo crear un archivo de instalador de la aplicaciónHow to create an App Installer file

Para distribuir el conjunto relacionado como una entidad, debe crear un archivo instalador de la aplicación que contenga los elementos que requiere ese 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.

Paso 1: creación del archivo *. AppInstallerStep 1: Create the *.appinstaller file

Con un editor de texto, cree un archivo (que contendrá XML) y asígnele el nombre < filename > . AppInstallerUsing a text editor, create a file (which will contain XML) and name it <filename>.appinstaller

Paso 2: agregar la plantilla básicaStep 2: Add the basic template

La plantilla básica incluye la información del archivo del instalador de la aplicación.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>

Paso 3: agregar la información del paquete principalStep 3: Add the main package information

Si el paquete de la aplicación principal es un archivo. msix o. appx, use <MainPackage> , como se muestra a continuación.If the main app package is an .msix or .appx file, then use <MainPackage>, as shown below. Asegúrese de incluir ProcessorArchitecture, ya que es obligatorio para los paquetes que no son de agrupación.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>

Si el paquete de la aplicación principal es un archivo. msixbundle o. appxbundle o, use <MainBundle> en lugar de, <MainPackage> como se muestra a continuación.If the main app package is an .msixbundle or .appxbundle or file, then use the <MainBundle> in place of <MainPackage> as shown below. En el caso de las agrupaciones, ProcessorArchitecture no es necesario.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>

La información del <MainBundle> atributo o <MainPackage> debe coincidir con el elemento paquete/identidad del manifiesto del lote de aplicaciones o el manifiesto del paquete de aplicación, 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.

Paso 4: incorporación de los paquetes opcionalesStep 4: Add the optional packages

Al igual que el atributo principal del paquete de la aplicación, si el paquete opcional puede ser un paquete de aplicación o un lote de aplicaciones, el elemento secundario dentro del <OptionalPackages> atributo debe ser <Package> o <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. La información del paquete en los elementos secundarios debe coincidir con el elemento Identity del paquete o el manifiesto del paquete.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>

Paso 5: agregar dependenciasStep 5: Add dependencies

En el elemento dependencies, puede especificar los paquetes de Framework necesarios para el paquete principal o los paquetes opcionales.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>

Paso 6: Agregar configuración de actualizaciónStep 6: Add Update setting

El archivo instalador de la aplicación también puede especificar la configuración de actualización para que los conjuntos relacionados se puedan actualizar automáticamente cuando se publique un archivo del instalador de la aplicación más reciente.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. es un elemento opcional. is an optional element. Dentro de la opción onlaunched, se especifica que las comprobaciones de actualización se deben realizar en el inicio de la aplicación y HoursBetweenUpdateChecks = "12" especifica que debe realizarse una comprobación de actualización 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. Si no se especifica HoursBetweenUpdateChecks, el intervalo predeterminado usado para buscar actualizaciones es de 24 horas.If HoursBetweenUpdateChecks is not specified, the default interval used to check for updates is 24 hours. En el esquemade configuración de actualización se pueden encontrar tipos de actualizaciones adicionales, como las actualizaciones en segundo plano. En el esquema onlaunched se pueden encontrar otros tipos de actualizaciones en el inicio, como las actualizaciones con un símbolo del sistema.Additional 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 obtener todos los detalles sobre el esquema XML, vea referencia de archivo del instalador de aplicaciones.For all of the details on the XML schema, see App Installer file reference.

Nota

El tipo de archivo instalador de la aplicación es nuevo en Windows 10, versión 1709 (Windows 10 Fall Creators Update).The App Installer file type is new in Windows 10, version 1709 (the Windows 10 Fall Creators Update). No se admite la implementación de aplicaciones de Windows 10 con un archivo de instalador de aplicaciones en versiones anteriores de Windows 10.There is no support for deployment of Windows 10 apps using an App Installer file on previous versions of Windows 10. El elemento HoursBetweenUpdateChecks está disponible a partir de Windows 10, versión 1803.The HoursBetweenUpdateChecks element is available starting in Windows 10, version 1803.