Creare bundle flat di pacchetti dell'app

Importante

Se si intende inviare l'app allo Store, è necessario contattare il Windows per sviluppatori per l'approvazione per l'uso di bundle flat.

I bundle flat sono un modo migliore per aggregare i file di pacchetto dell'app. Un tipico file bundle di app Windows usa una struttura di creazione di pacchetti multi-livello in cui i file del pacchetto dell'app devono essere contenuti all'interno del bundle. I bundle flat rimuovono questa esigenza facendo riferimento solo ai file del pacchetto dell'app, consentendo loro di essere all'esterno del bundle dell'app. Poiché i file del pacchetto dell'app non sono più contenuti nel bundle, possono essere elaborati in parallelo, con una riduzione dei tempi di caricamento, una pubblicazione più veloce (poiché ogni file del pacchetto dell'app può essere elaborato contemporaneamente) e infine iterazioni di sviluppo più veloci.

Diagramma di bundle flat

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 è cambiato tra le due versioni. In questo modo è necessario 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 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 o il layout di creazione 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 di bundle dell'app flat (che sarà estremamente piccolo perché fa riferimento solo ai file del pacchetto dell'app e non contiene alcun payload effettivo).

Ecco un esempio della sintassi del comando:

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

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

Uso del layout per la creazione di pacchetti

In alternativa, è possibile creare un bundle flat usando il layout di creazione del pacchetto. 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 di creazione dei pacchetti.

Come distribuire un bundle flat

Prima di poter 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 per installarlo con 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 la posizione prevista dal bundle dell'app.

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

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