Paquetes de aplicaciones de conjuntos planosFlat bundle app packages

Importante

Si desea enviar la aplicación a la tienda, es preciso que se ponga en contacto con el soporte técnico para desarrolladores de Windows para su aprobación con el fin de usar paquetes planos.If you intend to submit your app to the Store, you need to contact Windows developer support for approval to use flat bundles.

Los paquetes planos son una manera mejorada de agrupar los archivos de paquete de la aplicación.Flat bundles are an improved way to bundle your app’s package files. Un archivo de paquete de aplicaciones de Windows típico usa una estructura de empaquetado de varios niveles en la que los archivos del paquete de la aplicación deben incluirse en la agrupación, las agrupaciones planas eliminan esta necesidad solo haciendo referencia a los archivos del paquete de la aplicación, lo que permite que estén fuera del lote de aplicaciones.A typical Windows app bundle file uses a multi-level packaging structure in which the app package files need to be contained within the bundle, flat bundles remove this need by only referencing the app package files, allowing them to be outside of the app bundle. Dado que los archivos del paquete de la aplicación ya no se incluyen en la agrupación, se pueden procesar en paralelo, lo que reduce el tiempo de carga, la publicación es más rápida (ya que cada archivo de paquete de la aplicación se puede procesar al mismo tiempo) y, en última instancia, las iteraciones de desarrollo más rápidas.Since the app package files are no longer contained in the bundle, they can be parallel processed, which results in reduced uploading time, faster publishing (since each app package file can be processed at the same time), and ultimately faster development iterations.

Diagrama de agrupación plana

Otra ventaja de las agrupaciones planas es la necesidad de crear menos paquetes.Another benefit of flat bundles is the need to create less packages. Dado que solo se hace referencia a los archivos del paquete de la aplicación, dos versiones de la aplicación pueden hacer referencia al mismo archivo de paquete si el paquete no cambió en las dos versiones.Since app package files are only referenced, two versions of the app can reference the same package file if the package did not change across the two versions. Esto le permite crear solo los paquetes de la aplicación que han cambiado al compilar los paquetes para la versión siguiente de la aplicación.This allows you to have to create only the app packages that have changed when building the packages for the next version of your app. De forma predeterminada, las agrupaciones planas hacen referencia a los archivos de paquete de aplicación dentro de la misma carpeta.By default, the flat bundles will reference app package files within the same folder as itself. Sin embargo, esta referencia se puede cambiar a otras rutas de acceso (rutas de acceso relativas, recursos compartidos de red y ubicaciones http).However, this reference can be changed to other paths (relative paths, network shares, and http locations). Para ello, debe proporcionar directamente un BundleManifest durante la creación de la agrupación plana.To do this, you must directly provide a BundleManifest during the flat bundle creation.

Cómo crear una agrupación planaHow to create a flat bundle

Se puede crear un paquete plano mediante la herramienta de MakeAppx.exe o mediante el diseño de empaquetado para definir la estructura de la agrupación.A flat bundle can be created using the MakeAppx.exe tool, or by using the packaging layout to define the structure of your bundle.

Uso de MakeAppx.exeUsing MakeAppx.exe

Para crear una agrupación plana mediante MakeAppx.exe, use el comando "MakeAppx.exe bundle" como de costumbre, pero con el modificador/FB para generar el archivo de paquete de aplicación plana (que será muy pequeño, ya que solo hace referencia a los archivos del paquete de la aplicación y no contiene ninguna carga real).To create a flat bundle using MakeAppx.exe, use the “MakeAppx.exe bundle” command as usual but with the /fb switch to generate the flat app bundle file (which will be extremely small since it only references the app package files and does not contain any actual payloads).

A continuación se muestra un ejemplo de la sintaxis del comando:Here's an example of the command syntax:

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

Para obtener más información sobre el uso de MakeAppx.exe, consulte crear un paquete de la aplicación con la herramienta MakeAppx.exe.For more information on using MakeAppx.exe, see Create an app package with the MakeAppx.exe tool.

Usar el diseño de empaquetadoUsing packaging layout

Como alternativa, puede crear una agrupación plana mediante el diseño de empaquetado.Alternatively, you can create a flat bundle using the packing layout. Para ello, establezca el atributo FlatBundle en true en el elemento PackageFamily del manifiesto del lote de aplicaciones.To do this, set the FlatBundle attribute to true in the PackageFamily element of your app bundle manifest. Para obtener más información sobre el diseño de empaquetado, vea creación de paquetes con el diseño de empaquetado.To learn more about the packaging layout, see Package creation with the packaging layout.

Cómo implementar una agrupación planaHow to deploy a flat bundle

Antes de que se pueda implementar una agrupación plana, cada uno de los paquetes de la aplicación (además del lote de aplicaciones) debe estar firmado con el mismo certificado.Before a flat bundle can be deployed, each of the app packages (in addition to the app bundle) must be signed with the same certificate. Esto se debe a que todos los archivos de paquete de aplicación (. appx/. msix) son ahora archivos independientes y ya no se incluyen en el archivo de paquete de aplicaciones (. appxbundle/. msixbundle).This is because all of the app package files (.appx/.msix) are now independent files and are no longer contained within the app bundle (.appxbundle/.msixbundle) file.

Una vez firmados los paquetes, puede instalar la aplicación a través de una de estas opciones:After the packages are signed, you can install the app via one of these options:

  • Haga doble clic en el archivo de paquete de aplicaciones para instalar con el instalador de la aplicación.Double click the app bundle file to install with App Installer.
  • Use el cmdlet Add-AppxPackage de PowerShell y apunte al archivo de paquete de aplicaciones (suponiendo que los paquetes de la aplicación sean los lugares en los que el lote de aplicaciones espera que sea).Use the Add-AppxPackage cmdlet in PowerShell and point to the app bundle file (assuming app packages are where the app bundle expects them to be).

No puede implementar los paquetes. appx/. msix individuales de una agrupación plana.You cannot deploy the individual .appx/.msix packages of a flat bundle by themselves. Deben implementarse a través de. appxbundle/. msixbundle.They must be deployed through the .appxbundle/.msixbundle. Sin embargo, puede actualizar paquetes. appx/. msix individuales de una agrupación plana después de la instalación inicial.However, you can update individual .appx/.msix packages of a flat bundle after the initial install. Si actualiza el paquete. appx/. msix individual, también tendrá que actualizar el manifiesto del paquete plano.If you do update individual .appx/.msix package, you will also need to update the flat bundle's manifest.

Por ejemplo, si su paquete plano v1 se compone de un. msixbundle, un x86. msix, un x64. msix y un Asset. msix, y sabe que su paquete V2 solo tiene cambios en el paquete de activos, solo tiene que compilar el. msixbundle y Asset. msix para poder instalar la actualización.For example, if your v1 flat bundle is composed of an .msixbundle, an x86 .msix, an x64 .msix, and an asset .msix, and you know that your v2 bundle only has changes to the asset package, then you only need to build the .msixbundle and the asset .msix to be able to install the update. Debe compilar el. msixbundle para V2 porque la agrupación realiza un seguimiento de todas las versiones de sus paquetes. msix.You must build the .msixbundle for v2 because the bundle keeps track of all the versions of its .msix packages. Al golpear la versión del recurso. msix a V2, se necesita un nuevo. msixbundle que tenga esta nueva referencia.By bumping the version of the asset .msix to v2, you need a new .msixbundle that has this new reference. V2. msixbundle puede contener referencias a las ediciones v1 x86. msix y x64. msix; no es necesario que los paquetes. msix de un paquete plano tengan el mismo número de versión.The v2 .msixbundle can contain references to the v1 x86 .msix and x64 .msix; the .msix packages of a flat bundle does not need to have the same version number.