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 atributosName
,Publisher
yVersion
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.
- Cree el *. Archivo AppInstaller.
- Especifique los atributos del archivo de instalador de aplicación.
- Especifique el paquete principal de la aplicación de Windows.
- Especifique el conjunto opcional relacionado.
- Especifique el paquete de Windows App Framework de dependencia.
- Especifique las rutas de acceso del URI de actualización.
- Especifique las rutas de acceso de URI de reparación.
- 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:
- Abra el menú Inicio.
- Escriba lo siguiente:
notepad.exe
. - Abrir el menú Archivo.
- 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:
Abra el archivo creado en el paso 1.
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>
Actualización del atributo
Version
con la versión del archivo de Instalador de aplicaciónActualice 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.