Creare bundle flat di pacchetti dell'app

Importante

Se intendi inviare la tua app allo Store, devi contattare il supporto per sviluppatori di Windows per l'approvazione per l'uso di bundle flat.

I bundle flat sono un modo migliorato per aggregare i file di pacchetto dell'app. Un tipico file bundle di app di Windows usa una struttura di creazione pacchetti multilivello in cui i file del pacchetto dell'app devono essere contenuti all'interno del bundle, i bundle flat rimuovono questa necessità facendo riferimento solo ai file del pacchetto dell'app, consentendo loro di essere esterni al bundle dell'app. Poiché i file del pacchetto dell'app non sono più contenuti nel bundle, possono essere elaborati in parallelo, riducendo il tempo di caricamento, la pubblicazione più veloce (poiché ogni file del pacchetto dell'app può essere elaborato contemporaneamente) e infine iterazioni di sviluppo più veloci.

Flat Bundle Diagram

Un altro vantaggio dei bundle flat è la necessità di creare meno pacchetti. Poiché si fa riferimento solo ai file del pacchetto dell'app, due versioni dell'app possono fare riferimento allo stesso file di pacchetto se il pacchetto non è stato modificato nelle due versioni. Ciò consente di creare solo i pacchetti dell'app che sono stati modificati durante la compilazione dei pacchetti per la versione successiva dell'app. Per impostazione predefinita, i bundle flat fanno riferimento ai file del pacchetto dell'app all'interno della stessa cartella. Tuttavia, questo riferimento può essere modificato in altri percorsi (percorsi relativi, condivisioni di rete e percorsi HTTP). A tale scopo, è necessario specificare direttamente un BundleManifest durante la creazione del bundle flat.

Come creare un bundle flat

È possibile creare un bundle flat usando lo strumento MakeAppx.exe o usando il layout di creazione pacchetti per definire la struttura del bundle.

Uso di MakeAppx.exe

Per creare un bundle flat con MakeAppx.exe, usare il comando "MakeAppx.exe bundle" come di consueto, ma con l'opzione /fb per generare il file bundle dell'app flat (che sarà estremamente piccolo perché fa riferimento solo ai file del pacchetto dell'app e non contiene payload effettivi).

Ecco un esempio della sintassi dei comandi:

MakeAppx bundle [options] /d <content directory> /fb /p <output flat bundle name>

Per altre informazioni sull'uso di MakeAppx.exe, vedere Creare un pacchetto di app con lo strumento MakeAppx.exe.

Uso del layout dei pacchetti

In alternativa, è possibile creare un bundle piatto usando il layout di compressione. A tale scopo, impostare l'attributo FlatBundle su true nell'elemento PackageFamily del manifesto del bundle dell'app. Per altre informazioni sul layout dei pacchetti, vedere Creazione di pacchetti con il layout dei pacchetti.

Come distribuire un bundle flat

Prima di distribuire un bundle flat, ognuno dei pacchetti dell'app (oltre al bundle dell'app) deve essere firmato con lo stesso certificato. Ciò è dovuto al fatto che tutti i file del pacchetto dell'app (.appx/.msix) sono ora file indipendenti e non sono più contenuti nel file bundle dell'app (.appxbundle/.msixbundle).

Dopo aver firmato i pacchetti, è possibile installare l'app tramite una di queste opzioni:

  • Fare doppio clic sul file bundle dell'app da installare con il programma di installazione app.
  • Usare il cmdlet Add-AppxPackage in PowerShell e puntare al file bundle dell'app (presupponendo che i pacchetti dell'app siano in cui il bundle dell'app si aspetta che siano).

Non è possibile distribuire i singoli pacchetti .appx/.msix di un bundle flat da soli. Devono essere distribuiti tramite .appxbundle/.msixbundle. Tuttavia, è possibile aggiornare singoli pacchetti .appx/.msix di un bundle flat dopo l'installazione iniziale. Se si aggiorna il singolo pacchetto .appx/.msix, sarà necessario aggiornare anche il manifesto del bundle flat.

Ad esempio, se il bundle flat v1 è composto da un pacchetto con estensione msixbundle, un file msix x86, un file msix x64 e un file msix asset e si sa che il bundle v2 include solo modifiche al pacchetto asset, è sufficiente compilare il file msixbundle e l'asset msix per poter installare l'aggiornamento. È necessario compilare .msixbundle per v2 perché il bundle tiene traccia di tutte le versioni dei relativi pacchetti msix. Se si passa alla versione dell'asset con estensione msix alla versione 2, è necessario un nuovo file msixbundle con questo nuovo riferimento. La versione 2 .msixbundle può contenere riferimenti alla versione 1 x86 .msix e x64 .msix; I pacchetti con estensione msix di un bundle flat non devono avere lo stesso numero di versione.