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

En este artículo se muestra cómo crear manualmente un archivo del Instalador de aplicaciones que define un conjunto relacionado con las funcionalidades de autoupdación y reparación. 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, tendremos que crear un archivo XML con una extensión .appinstaller para definir un conjunto relacionado. El Instalador de aplicaciones consume el archivo *.appinstaller y permite al usuario instalar todos los paquetes definidos con un solo clic.

Durante la implementación, el archivo instalador de la aplicación:

  • El paquete de aplicación de Windows al que se hace referencia en el URI atributo del < elemento MainPackage > validará , NamePublisher y Version de los atributos 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.

Creación de un archivo de 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 la aplicación.

  1. Cree el *. Archivo AppInstaller.
  2. Especifique los atributos del archivo del 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 del 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 (Notepad.exe), cree un nuevo archivo con una extensión de nombre de archivo *. AppInstaller

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

Paso 2: Agregar la plantilla básica

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

Elemento Descripción
xmlns Espacio de nombres XML
Versión Versión del archivo del instalador de la aplicación en una notación de punto cuádruple (1.0.0.0).
URI Ruta de acceso de URI al archivo del 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 el *. 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 Version atributo con la versión del archivo del instalador de aplicación

  4. Actualice el URI atributo con la ubicación de red donde *. Se podrá acceder al archivo AppInstaller desde .

Paso 3: Agregar la información del paquete principal

y <MainPackage><MainBundle> se usan para identificar la aplicación principal de Windows que se instalará mediante el archivo instalador de la aplicación. <MainPackage> se usa cuando el instalador de la aplicación de Windows es *.msix o *.appx. <MainBundle> Usa cuando el instalador de la aplicación de Windows es 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 distribuye a través del archivo instalador de la aplicación. Para encontrar esto, ejecute el siguiente cmdlet de PowerShell: $(Get-AppxPackage [AppName]).Name.
Publisher Nombre canónico del certificado de publicador usado para firmar el instalador de la aplicación de Windows principal. Para encontrar esto, ejecute el siguiente cmdlet de PowerShell: $(Get-AppxPackage [AppName]).Publisher.
Versión La versión del instalador de la aplicación de Windows principal en una notación de punto cuádruple (1.0.0.0). Para encontrar esto, ejecute 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 <MainBundle> atributo o <MainPackage> debe coincidir con el elemento Package/Identity en el manifiesto del paquete de aplicaciones o el manifiesto del paquete de la aplicación, respectivamente.

Windows app Installer

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 de agrupació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" >

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

</AppInstaller>
Instalador del paquete de aplicaciones de Windows

Si el paquete de la aplicación principal es un archivo .msixbundle o .appxbundle, use en <MainBundle> lugar de <MainPackage> como se muestra a continuación. En el caso de las agrupaciones, No se requiere ProcessorArchitecture.

<?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 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 del <OptionalPackages> atributo debe ser <Package> o <Bundle> respectivamente. La información del paquete de los elementos secundarios debe coincidir con el elemento de identidad en el manifiesto del paquete o lote.

Elemento Descripción
Nombre Nombre de la aplicación opcional a la que se distribuye a través del archivo instalador de la aplicación. Para encontrar esto, ejecute el siguiente cmdlet de PowerShell: $(Get-AppxPackage [AppName]).Name.
Publisher Nombre canónico del certificado de publicador usado para firmar el instalador de aplicación de Windows opcional. Para encontrar esto, ejecute el siguiente cmdlet de PowerShell: $(Get-AppxPackage [AppName]).Publisher.
Versión La versión del instalador de aplicaciones de Windows opcional en una notación de punto cuádruple (1.0.0.0). Para encontrar esto, ejecute el siguiente cmdlet de PowerShell: $(Get-AppxPackage [AppName]).Version.
ProcessorArchitecture Arquitectura en la que se instala el instalador de aplicaciones de Windows opcional.
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 instalador de la aplicación. Para encontrar esto, ejecute el siguiente cmdlet de PowerShell: $(Get-AppxPackage [AppName]).Name.
Publisher Nombre canónico del certificado de publicador usado para firmar el instalador de la aplicación de Windows de dependencia. Para encontrar esto, ejecute el siguiente cmdlet de PowerShell: $(Get-AppxPackage [AppName]).Publisher.
Versión La versión del instalador de la aplicación de Windows de dependencia en una notación de cuatro puntos (1.0.0.0). Para encontrar esto, ejecute el siguiente cmdlet de PowerShell: $(Get-AppxPackage [AppName]).Version.
ProcessorArchitecture Arquitectura en la que se instala el instalador de la aplicación de Windows de dependencia.
URI Ruta de acceso del URI al medio de instalación de la aplicación 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 del 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 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 comprobar si hay actualizaciones es de 24 horas. Se pueden encontrar tipos adicionales de actualizaciones, como las actualizaciones en segundo plano, en el esquema configuración de actualización; Se pueden encontrar tipos adicionales de actualizaciones en el inicio, 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, todos serán 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 aplicaciones actualizarán de forma predeterminada su aplicación de Windows desde el URI del Instalador de aplicaciones, que se adhieren 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 actualización debe tener como destino los archivos del Instalador de la 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 la 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 <RepairURIs> propiedad . La aplicación de Windows intentará repararse en función del URI del instalador de aplicaciones, 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 aplicaciones. Esta configuración no requiere que la aplicación de Windows se haya instalado mediante un archivo del Instalador de aplicaciones.

<?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 del archivo del Instalador de aplicación.

Nota

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