重要
この機能はエンタープライズ アプリの展開を目的としており、ストアに送信されるアプリではサポートされていません。
フラット バンドルは、アプリのパッケージ ファイルをバンドルする改善された方法です。 一般的なWindowsアプリ バンドル ファイルでは、アプリ パッケージ ファイルをバンドル内に含める必要がある複数レベルのパッケージ構造が使用されます。フラット バンドルでは、アプリ パッケージ ファイルを参照するだけでこのニーズが解消され、アプリ バンドルの外部に配置できます。 アプリ パッケージ ファイルがバンドルに含まれなくなるため、並列処理できます。その結果、アップロード時間と公開にかかる時間が短縮され (各アプリ パッケージ ファイルを同時に処理できるため)、最終的に開発サイクルを早めることができます。
フラット バンドルのもう 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 パッケージのバージョン番号が同じである必要はありません。