Creación manual de un archivo del Instalador de aplicación

En este artículo se muestra cómo crear manualmente un archivo de Instalador de aplicación que define un conjunto relacionado con las funcionalidades de actualización y reparación automáticas. Un conjunto relacionado no es una entidad, sino una combinación de un paquete principal y paquetes opcionales.

Para poder instalar un conjunto relacionado como una entidad, debemos poder especificar el paquete principal y el paquete opcional como uno. Para ello, es necesario crear un archivo XML con una extensión .appinstaller para definir un conjunto relacionado. El Instalador de aplicación consume el archivo *.appinstaller y permite al usuario instalar todos los paquetes definidos con un solo clic.

Durante la implementación, el archivo de Instalador de aplicación hará lo siguiente:

  • El paquete de aplicación de Windows al que se hace referencia en el atributo URI del elemento <MainPackage > validará los atributos Name, Publisher y Version del paquete de aplicación de Windows de destino. Si el elemento Package/Identity del manifiesto del paquete de aplicación de Windows no coincide, se producirá un error en la instalación.
  • Cree una referencia a los URI de actualización y reparación de la familia del paquete.

Cómo crear un archivo del Instalador de aplicación

Para distribuir el conjunto relacionado como una entidad, debe crear un archivo de Instalador de aplicación que contenga los elementos necesarios para ese esquema del instalador de aplicación.

  1. Cree el *. Archivo AppInstaller.
  2. Especifique los atributos del archivo de instalador de aplicación.
  3. Especifique el paquete principal de la aplicación de Windows.
  4. Especifique el conjunto opcional relacionado.
  5. Especifique el paquete de Windows App Framework de dependencia.
  6. Especifique las rutas de acceso del URI de actualización.
  7. Especifique las rutas de acceso de URI de reparación.
  8. Especifique la Configuración de actualización.
Ejemplo de un archivo de Instalador de aplicación

Siguiendo los pasos indicados anteriormente, habrá creado correctamente un archivo de Instalador de aplicación similar al siguiente:

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

Paso 1: Crear el archivo *.appinstaller

Con un editor de texto (Bloc de notas.exe), cree un archivo con una extensión de nombre de archivo *. Appinstaller

Procedimientos:
  1. Abra el menú Inicio.
  2. Escriba lo siguiente: notepad.exe.
  3. Abrir el menú Archivo.
  4. Seleccione Guardar como en el menú desplegable.

Paso 2: Agregar la plantilla básica

Incluya el elemento AppInstaller en el archivo de Instalador de aplicación que tenga en cuenta la versión, la ruta de acceso y la ubicación de red del archivo de Instalador de aplicación. La información del elemento AppInstaller se consumirá al instalar las aplicaciones de Windows asociadas.

Elemento Descripción
xmlns El espacio de nombres XML.
Versión Versión del archivo del instalador de aplicación en una notación de punto cuádruple (1.0.0.0).
URI Ruta de acceso de URI al archivo de Instalador de aplicación actual, accesible por el dispositivo.
Procedimientos:
  1. Abra el archivo creado en el paso 1.

  2. Copie el siguiente contenido XML en su archivo *.AppInstaller.

    <?xml version="1.0" encoding="utf-8"?>
    <AppInstaller
        xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
        Version=""
        Uri="" >
    </AppInstaller>
    
  3. Actualización del atributo Version con la versión del archivo de Instalador de aplicación

  4. Actualice el atributo URI con la ubicación de red desde la que se podrá acceder a este archivo *.AppInstaller.

Paso 3: Agregar la información del paquete principal

El <MainPackage> y <MainBundle> se usan para identificar la aplicación principal de Windows que se instalará mediante el archivo de Instalador de aplicación. El <MainPackage> se usa cuando el instalador de aplicación de Windows es *.msix o *.appx. Use el <MainBundle> cuando el instalador de la aplicación de Windows sea un instalador de aplicación de Windows incluido, con una extensión de *.msixbundle o *.appxbundle.

Elemento Descripción
Nombre Nombre de la aplicación principal a la que se va a distribuir a través del archivo instalador de la aplicación. Puede encontrarlo ejecutando el siguiente cmdlet de PowerShell: $(Get-AppxPackage [AppName]).Name.
Publicador Nombre canónico del certificado de publicador que se usa para firmar el instalador principal de la aplicación de Windows. Puede encontrarlo ejecutando el siguiente cmdlet de PowerShell: $(Get-AppxPackage [AppName]).Publisher.
Versión La versión del instalador de la aplicación principal de Windows en una notación de punto cuádruple (1.0.0.0). Puede encontrarlo ejecutando el siguiente cmdlet de PowerShell: $(Get-AppxPackage [AppName]).Version.
ProcessorArchitecture Arquitectura en la que se instala el instalador principal de la aplicación de Windows.
URI Ruta de acceso del URI al medio de instalación de la aplicación de Windows principal.

La información del atributo <MainBundle> o <MainPackage> debe coincidir con el elemento Package/Identity del manifiesto del paquete de aplicaciones o del manifiesto del paquete de aplicación respectivamente.

Instalador de aplicación de Windows

Si el paquete de aplicación principal es un archivo .msix o .appx, use <MainPackage>, como se muestra a continuación. Asegúrese de incluir ProcessorArchitecture, ya que es obligatorio para los paquetes que no son agrupados.

<?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 lote de aplicaciones de Windows

Si el paquete de aplicación principal es un archivo .msixbundle o .appxbundle, use el <MainBundle> en lugar de <MainPackage> como se muestra a continuación. En el caso de los lotes, ProcessorArchitecture no es necesario.

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

Paso 4: Agregar los paquetes opcionales

De forma similar al atributo del paquete de aplicación principal, si el paquete opcional puede ser un paquete de aplicación o un lote de aplicaciones, el elemento secundario dentro del atributo <OptionalPackages> debe ser <Package> o <Bundle> respectivamente. La información del paquete de los elementos secundarios debe coincidir con el elemento identity del manifiesto del paquete o lote.

Elemento Descripción
Nombre Nombre de la aplicación opcional a la que se va a distribuir a través del archivo de Instalador de aplicación. Puede encontrarlo ejecutando el siguiente cmdlet de PowerShell: $(Get-AppxPackage [AppName]).Name.
Publicador Nombre canónico del certificado de publicador usado para firmar el instalador opcional de la aplicación de Windows. Puede encontrarlo ejecutando el siguiente cmdlet de PowerShell: $(Get-AppxPackage [AppName]).Publisher.
Versión La versión del instalador de aplicación de Windows opcional en una notación de punto cuádruple (1.0.0.0). Puede encontrarlo ejecutando el siguiente cmdlet de PowerShell: $(Get-AppxPackage [AppName]).Version.
ProcessorArchitecture Arquitectura en la que se instala el instalador opcional de la aplicación de Windows.
URI Ruta de acceso del URI al medio de instalación de la aplicación de Windows principal.
<?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>

Paso 5: Agregar dependencias

En el elemento dependencies, puede especificar los paquetes de marco necesarios para el paquete principal o los paquetes opcionales.

Elemento Descripción
Nombre Nombre de la aplicación de dependencia a la que se distribuye a través del archivo de Instalador de aplicación. Puede encontrarlo ejecutando el siguiente cmdlet de PowerShell: $(Get-AppxPackage [AppName]).Name.
Publicador Nombre canónico del certificado de publicador usado para firmar el instalador de aplicación de Windows de dependencia. Puede encontrarlo ejecutando el siguiente cmdlet de PowerShell: $(Get-AppxPackage [AppName]).Publisher.
Versión La versión del instalador de aplicación de Windows de dependencia en una notación de punto cuádruple (1.0.0.0). Puede encontrarlo ejecutando el siguiente cmdlet de PowerShell: $(Get-AppxPackage [AppName]).Version.
ProcessorArchitecture Arquitectura en la que se instala el instalador de aplicación de Windows de dependencia.
URI Ruta de acceso del URI al medio de instalación de la aplicación de Windows de dependencia.
<?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>

Paso 6: Agregar configuración de actualización

El archivo Instalador de 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 de Instalador de aplicación más reciente. <UpdateSettings> es un elemento opcional. En <UpdateSettings> la opción OnLaunch especifica que se deben realizar comprobaciones de actualización en el inicio de la aplicación y HoursBetweenUpdateChecks="12" especifica que se debe realizar una comprobación de actualización cada 12 horas. Si no se especifica HoursBetweenUpdateChecks, el intervalo predeterminado que se usa para buscar actualizaciones es de 24 horas. Se pueden encontrar tipos adicionales de actualizaciones, como actualizaciones en segundo plano, en el esquema Configuración de actualización; Se pueden encontrar tipos adicionales de actualizaciones en el lanzamiento, como actualizaciones con un aviso, en el esquema OnLaunch

Elementos Descripción
HoursBetweenUpdateChecks Define la brecha mínima en las comprobaciones de actualización de aplicaciones de Windows.
UpdateBlocksActivation Define la experiencia cuando se comprueba una actualización de la aplicación.
ShowPrompt Define si se muestra una ventana cuando se instalan las actualizaciones y cuándo se comprueban las actualizaciones.
ForceUpdateFromAnyVersion Especifica que la siguiente versión de la aplicación podría ser para una versión más reciente o anterior. Si es True, se instalarán todas para ambos, si es False (valor predeterminado), solo se instalarán las nuevas versiones.
<?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>

Paso 7: Agregar configuración de actualización automática

Importante

La siguiente configuración solo está disponible cuando se usa el esquema 2021 en una compilación de Windows Insider de Windows 10.

Las aplicaciones de Windows instaladas con un archivo del Instalador de aplicación actualizarán de forma predeterminada su aplicación de Windows desde el URI del Instalador de aplicación, que se adhiere a las configuraciones establecidas en el paso anterior. Los URI de actualización configurados en este paso actuarán como URI de reserva que se pueden usar si el URI del instalador de aplicación original ya no es accesible. Se puede configurar un máximo de 10 URI de actualización para cualquier aplicación de Windows.

El URI de la actualización debe tener como destino los archivos del Instalador de aplicación.

Nota:

Estas opciones solo funcionan cuando el esquema está configurado como 2021 o posterior.

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

Paso 8: Agregar configuración de reparación automática

Importante

La siguiente configuración solo está disponible cuando se usa el esquema 2021 en una compilación de Windows Insider de Windows 10.

Las aplicaciones de Windows instaladas en un dispositivo pueden admitir la reparación automática de la aplicación de Windows cuando se ha alterado. El instalador de origen que se usará para reparar la aplicación de Windows se puede configurar mediante la propiedad <RepairURIs>. La aplicación de Windows intentará repararse en función del URI del instalador de aplicación, si no es accesible, la aplicación de Windows usará el URI de reparación para identificar un origen de reparación. Se puede configurar un máximo de 10 URI de reparación para cualquier aplicación de Windows.

El URI de reparación puede tener como destino los archivos de la aplicación de Windows o del Instalador de aplicación. Esta configuración no requiere que la aplicación de Windows se haya instalado mediante un archivo del Instalador de aplicación.

<?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 obtener todos los detalles sobre el esquema XML, consulte Referencia de archivo de instalador de aplicación.

Nota:

El tipo de archivo del Instalador de aplicación es nuevo en Windows 10, versión 1709 (Windows 10 Fall Creators Update). No hay compatibilidad con la implementación de aplicaciones de Windows 10 mediante un archivo de Instalador de aplicación en versiones anteriores de Windows 10. El elemento HoursBetweenUpdateChecks está disponible a partir de Windows 10, versión 1803.