Creare bundle flat di pacchetti dell'app

Importante

Se intendi inviare la tua app allo Store, devi contattare il supporto per sviluppatori 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 esigenza solo facendo riferimento ai file del pacchetto dell'app, consentendo loro di trovarsi all'esterno del 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 tra le due versioni. Ciò consente di creare solo i pacchetti dell'app 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 fornire direttamente un BundleManifest durante la creazione del bundle flat.

Come creare un bundle flat

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

Uso di MakeAppx.exe

Per creare un bundle flat usando MakeAppx.exe, usare il comando "bundle MakeAppx.exe" 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 dell'app con lo strumento di MakeAppx.exe.

Uso del layout per la creazione di pacchetti

In alternativa, è possibile creare un bundle flat 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, ogni pacchetto dell'app (oltre al bundle dell'app) deve essere firmato con lo stesso certificato. Questo perché 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 di aggregazione dell'app (presupponendo che i pacchetti dell'app siano in cui il bundle dell'app prevede 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 è costituito da un pacchetto con estensione msixbundle, un file msix x86, un file con estensione 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 pacchetti msix. Passando alla versione dell'asset msix alla versione 2, è necessario un nuovo file con estensione msixbundle con questo nuovo riferimento. Il file con estensione msixbundle v2 può contenere riferimenti alla versione 1 x86 .msix e x64 .msix; I pacchetti msix di un bundle flat non devono avere lo stesso numero di versione.