Com crear paquets MSIX: empaquetat modern per a Windows

  • MSIX ofereix un model d'empaquetatge modern, fiable i net que substitueix EXE, MSI i AppX, amb desinstal·lacions sense restes i actualitzacions controlades.
  • La MSIX Packaging Tool permet convertir instal·ladors existents (MSI, EXE, App-V, ClickOnce o scripts) en paquets MSIX, capturant la instal·lació en un entorn preparat.
  • Visual Studio i MakeAppx.exe faciliten crear, signar i validar paquets i bundles avançats, incloent fitxers de càrrega per a Microsoft Store i dissenys d'empaquetat complexos.
  • MSIX app attach i els contenidors VHD/CIM integren aplicacions MSIX en entorns d'escriptori virtual, mantenint imatges lleugeres i aplicacions desacoblades.

Com crear paquets MSIX

Si treballes amb aplicacions d'escriptori a Windows i encara segueixes desplegant-ho tot amb instal·ladors EXE o MSI clàssics, va sent hora que li facis un ull a MSIX com a format d'empaquetatge modern. No només millora la instal·lació i la desinstal·lació, també et simplifica les actualitzacions, el desplegament massiu i la integració amb l'ecosistema actual de Windows, tant en local com en el núvol.

Al llarg d'aquesta guia veureu, pas a pas, com crear paquets MSIX al Windows des de diferents enfocaments: usant la MSIX Packaging Tool, amb Visual Studio, amb dissenys d'empaquetatge avançats mitjançant MakeAppx.exe i, a més, com encaixa tot això amb escenaris com MSIX app attach en entorns virtuals. La idea és que acabis amb una visió pràctica i completa per empaquetar, signar, validar i distribuir les teves aplicacions.

Què és MSIX i per què val la pena fer-lo servir

MSIX és el format d'instal·lació i empaquetat modern per a aplicacions Windows que Microsoft ha dissenyat com a evolució natural dEXE, MSI i AppX. Combina avantatges dels instal·ladors tradicionals amb la filosofia de contenidors de les apps modernes, la qual cosa es tradueix en instal·lacions més fiables, netes i predictibles.

A diferència d'un instal·lador EXE o MSI clàssic, un paquet MSIX es instal·la en un contenidor controlat, amb regles clares sobre on podeu escriure fitxers i claus de registre. Això permet que, quan l'usuari desinstal·la l'aplicació, es retiri tot allò que li pertany, sense deixar restes al sistema que amb el temps el vagin embrutant.

MSIX hereta conceptes d'App-V i del model UWP, però sense obligar-te a passar per Microsoft Store ni a refer completament els teus projectes. Pots convertir aplicacions Win32, WPF o Windows Forms ja existents (i en molts casos sense tocar codi) a un paquet MSIX que podràs desplegar amb eines com Intune, Configuration Manager, scripts de PowerShell o fins i tot dobles clics sobre el fitxer.

Un altre avantatge clau és que MSIX està pensat per optimitzar l'amplada de banda i l'emmagatzematge. Fes servir blocs de 64 KB, evita duplicar fitxers entre aplicacions i suporta actualitzacions diferencials, de manera que només es descarreguen els canvis, cosa ideal si distribueixes programari des del núvol o moltes màquines en xarxa.

Per si no n'hi hagués prou, Microsoft ofereix un SDK que permet treballar amb MSIX en altres sistemes operatius com iOS, macOS, Android, Linux o versions antigues de Windows, cosa que obre la porta a escenaris de distribució multiplataforma utilitzant un mateix model d'empaquetat.

Requisits i eines necessàries per crear paquets MSIX

Com crear paquets MSIX Windows

Per començar a crear paquets MSIX en condicions, convé tenir clar quines eines utilitzaràs i en quin entorn. El mínim que necessitaràs és Windows 10 versió 1809 o superior, o Windows 11, i permisos d'administrador a la màquina on realitzeu la conversió.

La utilitat clau per empaquetar aplicacions d'escriptori ja existents és la MSIX Packaging Tool, que pots instal·lar des de Microsoft Store (recomanat) o bé en mode sense connexió, descarregant el paquet i aprovisionant-lo amb PowerShell. També està disponible via WinGet amb una ordre tan directa com:

winget install «MSIX Packaging Tool» permet instal·lar ràpidament l'eina d'empaquetament MSIX des de línia d'ordres, sempre que tinguis configurat el client de paquets i un compte compatible amb la Store quan sigui necessari.

A més de la Packaging Tool, si desenvolupes aplicacions modernes o mantens projectes existents, et resultarà molt útil Visual Studio 2019 o 2022 amb les càrregues de treball adequades (per exemple, “Desenvolupament per a escriptori amb C++” o “.NET per a escriptori”) i les extensions relacionades amb MSIX. Visual Studio incorpora assistents per generar paquets i fitxers de càrrega per a la Store.

En escenaris més avançats, entra en joc MakeAppx.exe, la utilitat oficial de línia d'ordres per compilar paquets AppX/MSIX i les seves agrupacions (bundles) a partir d'un disseny d'empaquetatge en XML. Aquesta eina permet automatitzar la creació de paquets complexos amb diversos components i recursos.

Per acabar, si treballes amb Windows Virtual Desktop o Azure Virtual Desktop, o vols muntar aplicacions en contenidors VHD o CIM, t'interessarà conèixer MSIX app attach i eines de tercers com MSIX Hero o la comunitat d'AppVentiX, a més de la MSIX Manager Tool per generar contenidors discos virtuals amb els paquets.

Ús de MSIX Packaging Tool: convertir instal·ladors existents

La MSIX Packaging Tool està pensada perquè puguis reconvertir instal·ladors ja existents (MSI, EXE, App-V 5.x, ClickOnce i fins i tot instal·lacions manuals o mitjançant scripts) en un paquet MSIX sense necessitat de disposar del codi font original. És especialment útil per a equips dIT que volen modernitzar el seu catàleg de programari sense reescriure aplicacions.

En arrencar l'eina per primera vegada, se us demanarà consentiment per enviar dades de telemetria. Aquests dades de diagnòstic es limiten al comportament de la pròpia eina i no es fan servir per identificar-te ni contactar-te. Un cop acceptat (o no) l'enviament de telemetria, podreu triar entre crear un paquet d'aplicació, crear un paquet de modificació o obrir l'editor de paquets.

L'opció més utilitzada és crear un paquet d'aplicació. Aquest flux us guiarà des de la preparació de l'entorn fins a la creació del fitxer MSIX, partint d'un instal·lador MSI, EXE, App-V, ClickOnce, un script d'instal·lació o fins i tot un procés manual on executeu els passos que faríeu en una instal·lació normal.

La Packaging Tool suporta tres modes de conversió: empaquetar al propi equip, en una màquina remota o en una màquina virtual local de Hyper-V. Si treballes ja en un entorn net (sense massa programes i serveis que puguin generar soroll), és habitual seleccionar l'opció de crear el paquet en aquest mateix equip. Si preferiu aïllar el procés o teniu un entorn de proves ja muntat, us podeu connectar a una VM oa una màquina remota dedicada.

En el cas de les màquines virtuals locals, tingueu en compte que només s'admeten VMs de Hyper-V. Si utilitzeu una altra plataforma de virtualització, haureu de recórrer al mode de màquina remota per connectar-vos a aquesta màquina i realitzar la captura des d'allà.

Preparar la màquina de conversió

Com crear paquets MSIX Windows

Abans de començar a capturar un instal·lador, convé preparar l'entorn per minimitzar interferències. La MSIX Packaging Tool inclou una pantalla de “Prepare computer” on podeu deixar la màquina en un estat ideal per al procés d'empaquetat.

D'una banda, l'eina comprova si el controlador de la MSIX Packaging Tool necessari per a la captura està instal·lat i habilitat. Utilitza DISM per verificar-ho i, si detecta que falta o està deshabilitat, intentarà activar-ho de forma automàtica. Si aquí et trobes errors, és recomanable revisar la documentació de solució de problemes i, si persisteix, reportar el problema des del Centre d'opinions de Windows.

Un altre punt important és que l'eina desactiva temporalment Windows Update durant l'empaquetat per evitar que es registrin canvis aliens a la instal·lació de l'aplicació, com ara actualitzacions del sistema o altres apps.

La casella “Pending reboot” es fa servir com a indicador que hi ha operacions del sistema pendents de reinici. No es força el reinici, però es recomana fer-ho manualment si Windows informa que hi ha canvis pendents, i després tornar a iniciar l'eina per treballar amb un entorn net.

Addicionalment, de forma opcional pots deshabilitar serveis com Cerca de Windows o el servei de SMS Host des de la mateixa pantalla, marcant les caselles corresponents i usant l'opció “Disable selected”. La mateixa eina actualitzarà l'estat a “Disabled” quan completeu l'operació, encara que aquests passos no són obligatoris.

Quan hagis ajustat aquests paràmetres i verificat que el entorn està llest, només cal prémer a “Next” per passar a la fase de selecció de l'instal·lador que vols convertir.

Escollir l'instal·lador a empaquetar i signar el paquet

A la següent pantalla defineix quin instal·lador capturarà l'eina i com es comportarà durant el procés. Aquí podeu especificar directament el fitxer MSI, EXE, App-V, ClickOnce o la línia d'ordres d'un script, o bé deixar el camp en blanc i llançar la instal·lació manualment quan l'eina comenci el monitoratge.

Si tries un MSI, la Packaging Tool pot llegir el contingut del paquet i omplir automàticament molts dels camps del manifest MSIX, cosa que estalvia força temps més endavant. Si utilitzeu transformacions MST o pegats MSP, podeu indicar-los com a arguments al camp de paràmetres de l'instal·lador.

En el cas d'instal·ladors App-V 5.1, el procés és encara més directe. Només cal seleccionar el fitxer App-V i l'eina s'encarrega de traduir el manifest al format MSIX, portant-vos gairebé immediatament a la pantalla de creació del paquet. Això sí, versions 4.x d'App-V no estan suportades en aquest flux i es recomana partir de l'instal·lador font original.

Per a EXE i ClickOnce, l'eina no té un format estàndard del qual extreure metadades, així que hauràs d'emplenar manualment la informació de paquet (nom, publicador, etc.) en passos posteriors. Tot i així, segueixen sent completament convertibles sempre que l'instal·lador es comporti de forma raonablement predictible.

Si el que tens és un script d'instal·lació o prefereixes realitzar la instal·lació de forma manual, pots especificar la línia d'ordres de l'script o deixar el camp buit i executar-ho tot a mà durant la fase d'instal·lació mentre l'eina captura canvis al sistema.

Aquesta mateixa pantalla permet configurar les preferències de signatura del paquet. MSIX exigeix ​​que el paquet estigui signat per poder instal·lar-lo, de manera que pots triar entre Device Guard Signing (servei de Microsoft basat en Azure AD), un certificat .pfx propi, un fitxer .cer per validar que el publicador coincideix o l'opció de no signar en aquell moment (útil si signaràs en una altra etapa del pipeline).

Si optes per un certificat .pfx, hauràs de navegar fins al fitxer i proporcionar la contrasenya si està protegit. Amb Device Guard Signing iniciaràs sessió amb un compte d'Active Directory configurat per a aquest servei i delegaràs a Microsoft l'operació de signatura. A més, és molt aconsellable incloure'n una URL de segell de temps (RFC 3161) perquè la signatura segueixi sent vàlida encara que el certificat expiri.

Emplenar la informació del paquet MSIX

Un cop configurat l'instal·lador i les preferències de signatura, l'eina us demana completar la informació d'identitat del paquet. Aquests camps determinen com veu el sistema operatiu la teva aplicació, com s'actualitza i com es mostrarà l'usuari final.

El Nom de l'paquet és obligatori i correspon a l'identificador intern del paquet al manifest. No es mostra a lusuari, diferència majúscules de minúscules, no permet espais i ha de tenir entre 3 i 50 caràcters alfanumèrics, guions i punts. A més, no podeu acabar en punt ni coincidir amb noms reservats com AMB, PRN, AUX, NUL, COM1-COM9 o LPT1-LPT9.

El Nom per mostrar del paquet sí que és visible per a l'usuari al menú Inici ia les pàgines de Configuració, així que convé que sigui descriptiu i amigable. Podeu tenir entre 1 i 256 caràcters i admet traduccions si treballeu amb diversos idiomes.

El Nom del publicador s'ha d'ajustar a un nom distintiu (DN) i, molt important, ha de coincidir amb el subjecte del certificat amb què signis el paquet. Accepta una cadena força llarga (fins a 8192 caràcters) i segueix una expressió regular específica amb camps com CN, O, OU, C, etc., a l'estil dels certificats X.509.

També podeu definir un Nom del publicador per mostrar, que és el text llegible que veurà l'usuari a l'instal·lador d'aplicacions ia les opcions del sistema. Aquest camp, com el nom per mostrar del paquet, admet fins a 256 caràcters i es pot traduir.

La Versió del paquet utilitza la notació quàdruple “Principal.Secundari.Compilació.Revisió”. Cada vegada que publiquis una actualització hauries d'incrementar aquesta versió, ja que Windows la fa servir per decidir si una instal·lació és nova o una actualització sobre una existent.

La Descripció del paquet és opcional, però útil per documentar internament el propòsit de l'aplicació o mostrar un text explicatiu a la interfície d'instal·lació.

El camp Ubicació de la instal·lació defineix la ruta on l'instal·lador copiarà la càrrega útil de l'aplicació, normalment dins de “Fitxers de programa”. És opcional però recomanable si l'app s'instal·la fora d'aquesta carpeta per defecte. Assegureu-vos que aquesta ruta coincideix amb el que faci l'instal·lador durant la captura, perquè el paquet reflecteixi correctament l'estructura de fitxers.

Finalment, tens la casella per afegir compatibilitat amb MSIX Core. Això permet que el vostre paquet pugui executar-se en versions de Windows anteriors que no suporten MSIX nadivament, seleccionant en una llista desplegable la versió mínima de Windows a la qual vols donar suport amb MSIX Core.

Fase d'instal·lació i captura de l'aplicació

Com crear paquets MSIX Windows

Amb la configuració d'identitat llista, la Packaging Tool inicia la fase d'instal·lació monitoritzada. A partir d'aquest moment, tot el que feu per instal·lar i configurar l'aplicació quedarà registrat per formar part del paquet MSIX.

L'eina llança l'instal·lador a l'entorn que has triat (equip local, VM o remot) i has de seguir els seus passos com faries normalment, escollint idioma, components, ruta d'instal·lació, etc. És important que la ruta d'instal·lació coincideixi amb la declarada abans a la informació del paquet per evitar inconsistències.

Si l'aplicació necessita crear accessos directes, especialment un a l'escriptori o al menú Inici, convé que ho facis durant aquesta fase perquè l'eina pugui capturar els punts d'entrada correctes. De la mateixa manera, si el programari té requisits previs (frameworks, runtimes, .NET 3.5 o 2.0, components addicionals), els hauríeu d'instal·lar ara.

L'eina permet que executis múltiples instal·ladors o scripts mentre la captura està activa, així que podeu aprofitar per empaquetar d'una tacada diverses peces que formin part de la mateixa solució.

Si el procés d'instal·lació exigeix ​​un reinici del sistema, podeu fer servir el botó de “restart” de la pròpia eina o reiniciar manualment. En tornar a iniciar sessió, la Packaging Tool recupera el context i continua amb el flux de conversió just on ho vas deixar.

Quan creus que la instal·lació i configuració inicial de l'aplicació està acabada, feu clic a “Next” per passar a la gestió de les tasques de primer inici.

Gestió de la primera arrencada i serveis dins del paquet

A la pantalla de primer llançament, l'eina llista els executables detectats durant la instal·lació. Es recomana obrir l'aplicació principal com a mínim una vegada per capturar tasques de configuració inicial, creació de perfils, generació de carpetes d'usuari, etc.

Seleccioneu l'executable i premeu “Executar” per llançar-lo. Si hi ha diversos executables, pots marcar quin és el punt d'entrada principal. també pots eliminar entrades innecessàries que no vulguis exposar l'usuari com a aplicacions independents, usant l'opció de “Treure”.

Si per algun motiu l'executable principal no apareix a la llista, pots navegar manualment fins a la ubicació, executar-lo i després actualitzar la llista perquè quedi registrat. Aquesta flexibilitat us permet adaptar el paquet a aplicacions amb arbres de binaris complexos.

En passar a la següent pantalla, l'eina us demanarà confirmar si has completat la instal·lació i la configuració de primer inici. Si tries “Yes, move on”, el flux continua; si respons “No, I'm not done”, tornaràs a la pantalla anterior per llançar més apps, copiar fitxers o ajustar el que calgui.

A partir de la versió 1.2019.1220.0, la Packaging Tool incorpora un informe de serveis. Si durant la conversió heu detectat serveis registrats per l'instal·lador, els mostrarà agrupats en dues taules: “Included” (llestos per empaquetar) i “Excluded” (aquells que requereixen informació addicional o no estan suportats).

Fent doble clic a un servei podràs veure i, en alguns camps, editar dades com a nom per mostrar, descripció, compte d'inici, tipus d'arrencada (Automàtic, Manual o Deshabilitat), arguments i dependències. En canvi, el nom de clau i la ruta d'imatge no són editables perquè formen part de la definició essencial del servei.

Un cop revisada aquesta informació, pots decidir si moure un servei corregit a la llista de inclosos o deixar-ho exclòs si no vols empaquetar-ho. Això és molt útil per controlar quins serveis realment acompanyen l'aplicació final i evitar sorpreses en producció.

Creació i edició del paquet final

A la darrera fase de la Packaging Tool tries la ubicació on desar el fitxer MSIX generat. Per defecte, es fa servir la carpeta de dades d'aplicació local de l'eina, però podeu seleccionar qualsevol altra ruta més còmoda per al vostre flux de treball.

Si a més vols generar un fitxer de plantilla de conversió, molt útil per repetir conversions futures de la mateixa aplicació amb petits canvis, podeu indicar una ruta de desament diferent per a aquest fitxer. Tingueu en compte que per generar aquesta plantilla és obligatori haver especificat un instal·lador a l'inici del procés.

Abans de prémer el botó de «Create», pots entrar al editor de paquets per revisar i modificar contingut o propietats del MSIX capturat. Des d'aquí és possible ajustar el manifest, rutes, fitxers inclosos, entrades d'aplicacions, recursos visuals i altres detalls avançats.

En completar la creació, apareixerà una finestra emergent indicant la ruta exacta del paquet generat, amb un enllaç directe per obrir la carpeta, així com la ubicació dels logs de l'eina al directori LocalState. Des d'aquest punt podeu tancar l'eina, provar la instal·lació o continuar refinant el paquet amb l'editor.

Creació de paquets MSIX des del Visual Studio

Quan desenvolupeu aplicacions modernes o migreu projectes a Windows App SDK i WinUI 3, Visual Studio facilita moltíssim el procés d'empaquetat. El fitxer clau és Package.appxmanifest, un XML que defineix identitat, capacitats, associacions, icones i com s'integra l'app amb el sistema.

Des del dissenyador de manifest de Visual Studio ho pots configurar sense editar l'XML a mà: icones, orientacions de pantalla, capacitats de sistema (càmera, xarxa, ubicació, etc.), associacions de fitxer, protocols personalitzats i més. Cada pestanya del dissenyador agrupa opcions relacionades i enllaça a documentació si necessiteu detalls.

A la pestanya de Recursos visuals defineixes els logotips i imatges que es faran servir al menú Inici, barra de tasques, llista d'apps i notificacions toast. És important proporcionar les mides que Windows exigeix ​​(44, 150, 310 i altres variacions) perquè l'aplicació es vegi nítida a qualsevol escala.

A la pestanya de Empaquetat introdueixes les dades de publicació i tries quin certificat es farà servir per signar el MSIX. Tota app empaquetada ha d'estar signada i, perquè l'usuari pugui instal·lar-la sense advertiments, el certificat ha de ser de confiança al vostre equip (instal·lat al magatzem adequat o emès per una CA reconeguda).

si penses distribuir l'aplicació a través de Microsoft Store, pots associar el projecte a una app de la Store directament des de Visual Studio usant el menú Publicar > Associar l'aplicació amb la Botiga. Això sincronitza automàticament camps d'empaquetament amb les dades registrades al Centre de partners.

Per crear el paquet, feu clic dret sobre el projecte empaquetat (per exemple, una “Blank App, Packaged (WinUI 3 in Desktop)”) i escolliu Publicar > Crea paquets d'aplicacions. L'assistent et guiarà per seleccionar si vols empaquetar per a càrrega lateral (sideloading) o per a Store, el mètode de signatura i les arquitectures objectiu (x86, x64, ARM).

Tipus de paquets d'aplicació i fitxers de càrrega

A l'ecosistema MSIX hi ha diversos tipus de fitxers relacionats amb l'empaquetat, cadascun amb el paper. El més bàsic és el paquet d'aplicació (.msix o .appx), que conté l'app i els seus recursos per a una arquitectura concreta, com ara x64 o x86. Si necessiteu suportar diverses arquitectures, haureu de generar un paquet per cadascuna.

Per simplificar la distribució multiplataforma, existeixen els paquets d'aplicacions agrupats (.msixbundle o .appxbundle). Un bundle pot contenir diversos paquets daplicació, cadascun per a una arquitectura diferent (x86, x64, ARM). El sistema tria automàticament el que correspongui al dispositiu on s'instal·la.

Quan voleu enviar l'app a Microsoft Store, s'utilitza un fitxer de càrrega de paquet d'aplicació (.msixupload o .appxupload). Aquest fitxer agrupa un o més bundles o paquets individuals juntament amb el fitxer de símbols (.appxsym) utilitzat per analitzar bloquejos i rendiment des del Centre de partners.

Visual Studio pot generar aquests fitxers de càrrega automàticament si a l'assistent tries les opcions de creació de paquets per a Store. Només heu de pujar el .msixupload o .appxupload al Centre de partners en el procés d'enviament.

Dissenys d'empaquetatge avançats amb MakeAppx.exe

Quan les teves aplicacions creixen en mida i complexitat, és habitual que es dividisquen en diversos paquets: principal, recursos, contingut opcional, DLC, etc.. Gestionar tot això a mà pot ser una bogeria, sobretot si no utilitzeu Visual Studio. Per a aquests casos hi ha el concepte de disseny d'empaquetatge (PackagingLayout) suportat per MakeAppx.exe.

Un disseny d'empaquetat és un document XML que descriu l'estructura completa d'una aplicació empaquetada: famílies de paquets, bundles, paquets principals, paquets d'actius, fitxers que conté cadascun, filtres d'inclusió/exclusió, etc. Amb un sol fitxer XML i una trucada a MakeAppx pots compilar tots els paquets necessaris.

En un exemple senzill tindries un element PackagingLayout amb una PackageFamily que actua com a agrupació d'aplicacions. Aquí defineixes atributs com ManifestPath (ruta a l'AppxManifest base), FlatBundle (si vols un bundle pla o clàssic), ResourceManager (si uses MRT per a recursos) i fins i tot un identificador únic per a aquesta família.

Dins de PackageFamily pots definir un paquet per al codi principal (indicant ProcessorArchitecture: x64, x86, arm o neutral) i un o més AssetPackage per a contingut addicional (per exemple, recursos multimèdia), on pots indicar AllowExecution=false perquè el contingut no requereixi anàlisi de virus tan exhaustiu en no contenir executables.

Mitjançant l'element Arxius i els seus nodes File defineix quins fitxers s'inclouen en cada paquet: SourcePath marca on són els fitxers al teu sistema o xarxa, DestinationPath on es col·loquen dins del paquet, i ExcludePath et permet excloure fitxers ja seleccionats per altres patrons. Els comodins simples (*) i dobles (**) et deixen seleccionar conjunts de fitxers de forma recursiva i fins i tot reanomenar-los sobre la marxa.

En dissenys avançats apareixen també ResourcePackage per a paquets localitzats, on uses nodes Resources i Resource per assignar qualificadors d'idioma, escala, etc., i marcar-ne un com a predeterminat. També podeu definir PackageFamily marcats com a Optional, que representen DLC o complements que es poden instal·lar a part, i l'atribut RelatedSet controla si s'actualitzen en tàndem amb el paquet principal.

Si ja teniu paquets precompilats que han de formar part d'una agrupació, podeu referenciar-los amb PrebuiltPackage, indicant simplement la ruta al .msix, .appx o .appxbundle existent perquè MakeAppx ho tingui en compte en construir el bundle global.

Per compilar usant un disseny, executes comandes com MakeAppx.exe build /f PackagingLayout.xml /op OutputPackages\, que genera tots els paquets descrits a l'XML. Opcionalment et pots limitar a certs components amb /id, apuntar a una versió prèvia amb /ip per reutilitzar paquets que no canvien, i incrementar versions automàticament amb /iv.

MSIX app attach i contenidors VHD/CIM

En entorns d'escriptori virtual, com ara Azure Virtual Desktop, s'ha popularitzat l'ús de MSIX app attach, una tècnica per muntar aplicacions recollides en paquets MSIX dins de contenidors VHD, VHDX o CIM, evitant inflar la imatge base del sistema amb desenes de programes.

La idea és mantenir-ne una imatge de sistema el més neta i petita possible, i emmagatzemar les aplicacions en discos virtuals que es munten i associen a les sessions d'usuari segons calgui. D'aquesta manera pots “adjuntar” o “desacoblar” aplicacions sense reinstal·lar res a la imatge principal.

Perquè això funcioni és imprescindible que els paquets MSIX estiguin signats amb un certificat de confiança, expedit per una comunitat autònoma interna o pública que els sistemes reconeguin. Sense aquesta confiança, Windows no permetrà executar els paquets muntats.

La creació d'un contenidor VHD a partir d'un MSIX es pot fer de diverses maneres. Microsoft ofereix la MSIX Manager Tool, amb la qual podeu extreure el contingut del paquet i empaquetar-lo en un disc virtual, llest per muntar-se. També hi ha utilitats de tercers com MSIX Hero o eines de la comunitat AppVentiX que automatitzen aquest procés i redueixen la dependència de mòduls de Hyper-V a PowerShell.

Un cop creat el VHD o CIM, es configura l'entorn d'escriptori virtual perquè, en iniciar la sessió, munteu el disc i registreu l'app adjunta, de manera que l'usuari la veu com a instal·lada sense ocupar espai a la imatge base. Aquest enfocament facilita la gestió de versions, l‟assignació dinàmica d‟aplicacions i la reducció de temps de manteniment.

Instal·lació, validació i distribució de paquets MSIX

Com crear paquets MSIX Windows

Un paquet MSIX es pot instal·lar amb un simple doble clic sobre el fitxer .msix o .msixbundle. Això obre l'instal·lador d'aplicacions de Windows, que mostra informació bàsica del paquet, editor i botó d'instal·lació amb barra de progrés i missatges d'error si falla alguna cosa.

Quan generes paquets des de Visual Studio, es creen també scripts de PowerShell com Add-AppDevPackage.ps1, ubicats en carpetes del tipus *_Test. Executant aquest script amb “Executar amb PowerShell” pots instal·lar el paquet de forma assistida, cosa que resulta molt útil en entorns de proves o integració contínua.

Abans de pujar res a Microsoft Store, convé passar el paquet pel Kit de certificació d'aplicacions de Windows (WACK). Des de l'assistent de creació de paquets de Visual Studio pots llançar el WACK sobre la màquina local o fins i tot sobre un dispositiu remot Windows 10, sempre que tinguis instal·lades les eines remotes i el mateix kit en aquest equip.

El WACK realitza una bateria de proves (rendiment, API usades, comportament en segon pla, etc.) i genera un informe. Si l'app supera la certificació, el paquet està llest per ser enviat al Centre de partners. Normalment el fitxer .appxupload o .msixupload es troba a la carpeta AppPackages de la solució i el seu nom inclou la versió i arquitectures suportades.

És possible també automatitzar l'enviament a Store des de Visual Studio 2019 en endavant, marcant l'opció d'enviar automàticament a Microsoft Store després de la validació WACK. Per fer-ho, cal associar Azure Active Directory amb el compte del Centre de partners, crear o vincular una aplicació d'Azure AD amb rol d'administrador i recuperar credencials com l'identificador d'inquilí, identificador de client i clau de client.

Configurant aquestes dades al quadre de diàleg d'opcions d'enviament, Visual Studio pot iniciar el procés de publicació en acabar les proves, i des de la finestra de “Comprovar i publicar” podràs seguir l'estat de l'enviament, reduint passos manuals al teu pipeline de desplegament.

Amb tot aquest ecosistema de ferramentes, fluxos i formats, MSIX es converteix en la peça central per empaquetar, actualitzar i distribuir aplicacions Windows, tant si converteixes instal·ladors heretats amb MSIX Packaging Tool, et recolzes a Visual Studio per a nous desenvolupaments, orquestres paquets complexos amb MakeAppx.exe o els desplegaments en entorns virtuals mitjançant app attach, oferint instal·lacions més netes, controlades i preparades per al món híbrid entre escriptori local i núvol.

com veure les aplicacions obertes a Windows 11
Article relacionat:
Windows App SDK: Guia completa amb tot el que has de saber