Visión general de paquetes AppX
Con Windows 8, Microsoft introdujo un nuevo tipo de aplicaciones (Metro-style) que siguen las directrices de la interfaz. Estas aplicaciones se empaquetan en formato AppX y pueden desplegarse con DISM o con los cmdlets de PowerShell del módulo Appx.
DISMTools 0.2 incorporó el servicio de paquetes AppX, permitiendo añadir y eliminar estas aplicaciones en imágenes de Windows y/o instalaciones en línea.
Dentro de un paquete AppX
NOTA: esta información se basa en el empaquetado MSIX, aunque también aplica a AppX. Una visión general de MSIX está disponible aquí. Aquí nos centramos en aspectos técnicos relevantes para DISMTools.
Esta es la estructura general de un paquete AppX:
Fuente: Microsoft
La ubicación de algunos archivos varía según el formato:
- Los paquetes
.appxy.msixcontienen el manifiesto en la raíz comoAppxManifest.xml.
- Los paquetes
.appxbundley.msixbundlealmacenan el manifiesto comoAppxBundleManifest.xmldentro del directorioAppxMetadata.
El manifiesto proporciona información sobre la aplicación: nombre, editor, versión y, lo más importante, sus dependencias.
NOTA: los paquetes .eappx o .emsix no pueden abrirse ni desplegarse mediante DISM; deben instalarse con Add-AppxPackage.
Veamos un manifiesto (ejemplo de Rayman Jungle Run):
Si no se lee bien, aquí está en código:
<Identity Name="UbisoftEntertainment.RaymanJungleRun" Publisher="CN=C6D89DF1-FB66-4AAD-9100-AD9BE1186BE1" Version="1.2.0.88" ProcessorArchitecture="x86" />
Esta es la información que muestra DISMTools al añadir paquetes AppX:
La línea XML anterior puede estar en la línea 3 del manifiesto (o en la línea 10 si hay un comentario al inicio).
¿Cómo detecta DISMTools el logo de la tienda? Usando el manifiesto: tras la línea de identidad aparece <Properties> con el DisplayName, el nombre del editor y la ubicación del logo. DISMTools extrae ese recurso si está disponible; en caso contrario mostrará un icono genérico.
En .appxbundle y .msixbundle el logo puede estar en un paquete AppX anidado; DISMTools extrae el recurso desde la ubicación correspondiente.
Con el logo extraído, DISMTools lo copia a una caché de logos para evitar extracciones repetidas.
Archivos App Installer
Los archivos App Installer son XML que declaran la URL de descarga del paquete principal (habitualmente un bundle). Nos interesa la sección <MainBundle>, que define nombre, editor, versión y la URL de descarga, por ejemplo:
<MainBundle Name="Microsoft.WinDbg" Version="1.2306.12001.0" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" Uri="https://windbg.download.prss.microsoft.com/dbazure/prod/1-2306-12001-0/windbg.msixbundle" />
La propiedad Uri es la que importa: DISMTools 0.3.2+ lee estos archivos, detecta la URL y descarga el paquete.
Referencia de App Installer: https://learn.microsoft.com/es-es/uwp/schemas/appinstallerschema/schema-root
Tareas disponibles
- Añadir paquetes AppX aprovisionados
- Obtener información de paquetes AppX
- Eliminar paquetes AppX aprovisionados