Pacotes de aplicativo do pacote simplesFlat bundle app packages

Importante

Se você pretender enviar seu aplicativo para a Store, precisará entrar em contato com Suporte ao desenvolvedor Windows para obter aprovação para usar lotes simples.If you intend to submit your app to the Store, you need to contact Windows developer support for approval to use flat bundles.

Os pacotes simples são uma maneira aprimorada de agrupar os arquivos de pacote do aplicativo.Flat bundles are an improved way to bundle your app’s package files. Um arquivo de pacote de aplicativo do Windows típico usa uma estrutura de empacotamento de vários níveis na qual os arquivos de pacote do aplicativo precisam estar contidos no pacote, os pacotes simples removem essa necessidade apenas referenciando os arquivos de pacote do aplicativo, permitindo que eles estejam fora do pacote de aplicativos.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. Como os arquivos de pacote do aplicativo não estão mais contidos no pacote, eles podem ser processados em paralelo, o que resulta em tempo de carregamento reduzido, publicação mais rápida (já que cada arquivo de pacote de aplicativo pode ser processado ao mesmo tempo) e iterações de desenvolvimento mais 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 lote simples

Outra vantagem de lotes simples é a necessidade de criar menos pacotes.Another benefit of flat bundles is the need to create less packages. Como os arquivos de pacote do aplicativo são referenciados apenas, duas versões do aplicativo podem referenciar o mesmo arquivo de pacote se o pacote não fosse alterado nas duas versões.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. Assim, você precisa criar apenas os pacotes de aplicativo que foram alterados ao compilar os pacotes para a próxima versão do seu aplicativo.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. Por padrão, os pacotes simples referenciarão os arquivos de pacote do aplicativo dentro da mesma pasta.By default, the flat bundles will reference app package files within the same folder as itself. No entanto, essa referência pode ser alterada para outros caminhos (caminhos relativos, compartilhamentos de rede e locais http).However, this reference can be changed to other paths (relative paths, network shares, and http locations). Para fazer isso, você deve fornecer diretamente um BundleManifest durante a criação de lote simples.To do this, you must directly provide a BundleManifest during the flat bundle creation.

Como criar um lote simplesHow to create a flat bundle

Um lote simples pode ser criado usando a ferramenta MakeAppx.exe ou usando o layout de empacotamento para definir a estrutura do seu lote.A flat bundle can be created using the MakeAppx.exe tool, or by using the packaging layout to define the structure of your bundle.

Usando a MakeAppx.exeUsing MakeAppx.exe

Para criar um pacote simples usando MakeAppx.exe, use o comando "pacote de MakeAppx.exe" como de costume, mas com a opção/FB para gerar o arquivo de pacote de aplicativo simples (que será extremamente pequeno, já que ele faz referência apenas aos arquivos de pacote do aplicativo e não contém nenhuma 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).

Eis um exemplo da sintaxe do comando:Here's an example of the command syntax:

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

Para obter mais informações sobre como usar MakeAppx.exe, consulte Criar um pacote de aplicativos com a ferramenta MakeAppx.exe.For more information on using MakeAppx.exe, see Create an app package with the MakeAppx.exe tool.

Usando o layout de empacotamentoUsing packaging layout

Como alternativa, você pode criar um lote simples usando o layout de empacotamento.Alternatively, you can create a flat bundle using the packing layout. Para fazer isso, defina o atributo FlatBundle como true no elemento PackageFamily do manifesto do lote de aplicativo.To do this, set the FlatBundle attribute to true in the PackageFamily element of your app bundle manifest. Para saber mais sobre o layout de empacotamento, consulte Criação do pacote com o layout de empacotamento.To learn more about the packaging layout, see Package creation with the packaging layout.

Como implantar um lote simplesHow to deploy a flat bundle

Antes que um pacote simples possa ser implantado, cada um dos pacotes de aplicativos (além do pacote de aplicativos) deve ser assinado com o mesmo 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. Isso ocorre porque todos os arquivos de pacote do aplicativo (. Appx/. msix) agora são arquivos independentes e não estão mais contidos no arquivo de pacote do aplicativo (. 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.

Depois que os pacotes são assinados, você pode instalar o aplicativo por meio de uma destas opções:After the packages are signed, you can install the app via one of these options:

  • Clique duas vezes no arquivo de pacote de aplicativo para instalar com o instalador do aplicativo.Double click the app bundle file to install with App Installer.
  • Use o cmdlet Add-AppxPackage no PowerShell e aponte para o arquivo de pacote de aplicativo (supondo que os pacotes de aplicativo sejam onde o pacote de aplicativo espera que sejam).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).

Você não pode implantar os pacotes. Appx/. msix individuais de um pacote simples por si só.You cannot deploy the individual .appx/.msix packages of a flat bundle by themselves. Eles devem ser implantados por meio de. appxbundle/. msixbundle.They must be deployed through the .appxbundle/.msixbundle. No entanto, você pode atualizar pacotes. Appx/. msix individuais de um pacote simples após a instalação inicial.However, you can update individual .appx/.msix packages of a flat bundle after the initial install. Se você atualizar o pacote. Appx/. msix individual, também será necessário atualizar o manifesto do pacote simples.If you do update individual .appx/.msix package, you will also need to update the flat bundle's manifest.

Por exemplo, se seu pacote simples v1 é composto de um. msixbundle, um x86. msix, um x64. msix e um Asset. msix, e você sabe que o seu pacote V2 tem apenas alterações no pacote de ativos, você só precisa criar o. msixbundle e o Asset. msix para poder instalar a atualização.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. Você deve compilar o. msixbundle para v2 porque o pacote mantém o controle de todas as versões de seus pacotes. msix.You must build the .msixbundle for v2 because the bundle keeps track of all the versions of its .msix packages. Ao aumentar a versão do Asset. msix para a v2, você precisa de um New. msixbundle que tenha essa nova referência.By bumping the version of the asset .msix to v2, you need a new .msixbundle that has this new reference. O v2. msixbundle pode conter referências para o v1 x86. msix e x64. msix; os pacotes. msix de um pacote simples não precisam ter o mesmo número de versão.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.