フラット バンドル アプリ パッケージ

重要

アプリを Store に提出する場合、フラット バンドルを使用するための承認を得るには、Windows デベロッパー サポートに連絡する必要があります。

フラット バンドルは、アプリのパッケージ ファイルをバンドルする改善された方法です。 一般的な Windows アプリ バンドル ファイルでは複数レベルのパッケージ構造が使用されるため、アプリ パッケージ ファイルをバンドル内に含める必要がありますが、フラット バンドルではアプリ バンドルの外部に配置できるため、アプリ パッケージ ファイルを参照するだけでこの必要がなくなります。 アプリ パッケージ ファイルがバンドルに含まれなくなるため、並列処理できます。その結果、アップロード時間と公開にかかる時間が短縮され (各アプリ パッケージ ファイルを同時に処理できるため)、最終的に開発サイクルを早めることができます。

Flat Bundle Diagram

フラット バンドルのもう 1 つの利点は、必要なパッケージの作成が少なくなるです。 アプリ パッケージ ファイルは参照されるだけのため、2 つのバージョン間でパッケージが変更されなかった場合、2 つのバージョンのアプリが同じパッケージ ファイルを参照できます。 これにより、次のバージョンのアプリ用にパッケージを構築するときに変更されたアプリ パッケージのみを作成する必要があります。 既定では、フラット バンドルはそれ自体と同じフォルダー内のアプリ パッケージ ファイルを参照します。 ただし、この参照はその他のパス (相対パス、ネットワーク共有、http の場所) に変更できます。 これを行うには、フラット バンドルの作成時に「BundleManifest」を直接指定する必要があります。

フラット バンドルの作成方法

フラット バンドルは、MakeAppx.exe ツールを使用するか、パッケージ レイアウトを使用してバンドルの構造を定義して作成できます。

MakeAppx.exe の使用

MakeAppx.exe を使ってフラット バンドルを作成するには、通常どおり "MakeAppx.exe bundle" コマンドを使いますが、/fb スイッチを指定してフラットなアプリ バンドル ファイルを生成します (アプリ パッケージ ファイルのみを参照し、実際のペイロードは含まれないため、非常に小さくなります)。

コマンド構文の例は次の通りです。

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

MakeAppx.exe の使用方法の詳細については、「MakeAppx.exe ツールでアプリ パッケージの作成」を参照してください。

パッケージ レイアウトの使用

または、パッキング レイアウトを使用してフラット バンドルを作成することもできます。 これを行うには、アプリ バンドル マニフェストの「PackageFamily」要素で「FlatBundle」属性を「true」に設定します。 パッケージ レイアウトの詳細については、「パッケージ レイアウトでパッケージの作成」を参照してください。

フラット バンドルをデプロイする方法

フラット バンドルを展開する前に、(アプリ バンドルに加えて) 各アプリ パッケージに同じ証明書で署名する必要があります。 これは、アプリ パッケージ ファイル (.appx/.msix) がすべて独立したファイルになり、アプリ バンドル (.appxbundle/.msixbundle) ファイルに含まれなくなったためです。

パッケージに署名した後は、次のいずれかのオプションを使用してアプリをインストールできます。

  • アプリ インストーラーを使用してインストールするには、アプリ バンドル ファイルをダブルクリックします。
  • PowerShell で Add-AppxPackage コマンドレットを使用し、アプリ バンドル ファイルをポイントします (アプリ パッケージがアプリ バンドルで想定されている場所である場合)。

フラット バンドルの個々の .appx/.msix パッケージを自分でデプロイすることはできません。 .appxbundle/.msixbundle を使用して展開する必要があります。 ただし、最初のインストール後に、フラット バンドルの個々の .appx/.msix パッケージを更新できます。 個々の .appx/.msix パッケージを更新する場合は、フラット バンドルのマニフェストも更新する必要があります。

たとえば、v1 フラット バンドルが .msixbundle、x86 .msix、x64 .msix、および資産 .msix で構成され、v2 バンドルに資産パッケージへの変更しか含まれていないことがわかっている場合は、.msixbundle と資産 .msix をビルドして更新プログラムをインストールする必要があります。 バンドルで .msix パッケージのすべてのバージョンが追跡されるので、v2 用の .msixbundle をビルドする必要があります。 資産 .msix のバージョンを v2 にバンプすることで、この新しい参照を持つ新しい .msixbundle が必要になります。 v2 .msixbundle には、v1 x86 .msix および x64 .msix への参照を含めることができます。フラット バンドルの .msix パッケージのバージョン番号が同じである必要はありません。