次の方法で共有


資産パッケージの概要

重要

アプリをストアに提出する場合は、 Windows 開発者サポート に連絡し、資産パッケージを使用するための承認を得る必要があります。

アセット パッケージは、アプリケーションの共通ファイルの一元的な場所として機能するパッケージの一種であり、アーキテクチャ パッケージ全体で重複するファイルの必要性を効果的に排除します。 アセット パッケージは、どちらもアプリの実行に必要な静的コンテンツを含むよう設計されているという点でリソース パッケージに似ていますが、ユーザーのシステム アーキテクチャ、言語、または表示スケールに関係なく、すべての資産パッケージが常にダウンロードされるという点で異なります。

アセット パッケージ バンドルの図

アセット パッケージにはアーキテクチャ、言語、スケールに依存しないファイルがすべて含まれているため、アセット パッケージを利用すると、パッケージ化されたアプリの全体的なサイズが小さくなります (これらのファイルは重複しなくなったため)。これにより、大規模なアプリのローカル開発ディスク領域の使用量を管理し、アプリのパッケージ全般を管理できます。

アセット パッケージが発行に与える影響

アセット パッケージの最も明白な利点は、パッケージ 化されたアプリのサイズの縮小です。 アプリ パッケージを小さくすると、ストアで処理するファイルが少なくなることで、アプリの発行プロセスが高速化されます。ただし、これは資産パッケージの最も重要な利点ではありません。

アセット パッケージを作成するときに、パッケージの実行を許可するかどうかを指定できます。 アセット パッケージにはアーキテクチャに依存しないファイルのみを含める必要があるため、一般に .dll ファイルや .exe ファイルは含まれていないため、アセット パッケージの場合は通常、実行する必要はありません。 この区別の重要性は、発行プロセス中に、すべての実行可能パッケージをスキャンしてマルウェアが含まれていないことを確認する必要があり、このスキャン プロセスが大規模なパッケージに対して時間がかかるということです。 ただし、パッケージが非実行可能ファイルとして指定されている場合、アプリのインストールにより、このパッケージに含まれるファイルを実行できなくなります。 この保証により、完全なパッケージ スキャンが不要になり、アプリの公開中 (および更新プログラムの場合) のマルウェア スキャン時間が大幅に短縮されるため、資産パッケージを使用するアプリの発行が大幅に高速化されます。 フラット バンドル アプリ パッケージ は、この発行特典を取得するためにも使用する必要があることに注意してください。これは、ストアが各.appxまたは .msix パッケージ ファイルを並列で処理できるようにするためです。

アセット パッケージを使用する必要がありますか?

アセット パッケージの使用を活用するようにアプリのファイル構造を更新すると、パッケージ サイズの削減と開発の反復の無駄を減らすという具体的な利点が得られます。 アーキテクチャ パッケージに共通する大量のファイルが含まれている場合、またはアプリの大部分が実行されていないファイルで構成されている場合は、資産パッケージの使用に変換するために余分な時間を費やすることを強くお勧めします。

ただし、アセット パッケージはアプリ コンテンツのオプションを実現するための手段ではないことに注意する必要があります。 アセット パッケージ ファイルはオプションではありません。ターゲット デバイスのアーキテクチャ、言語、またはスケールに関係なく 、常に ダウンロードされます。アプリでサポートするオプションのコンテンツは、 省略可能なパッケージを使用して実装する必要があります。

資産パッケージを作成する方法

アセット パッケージを作成する最も簡単な方法は、パッケージ レイアウトを使用することです。 ただし、アセット パッケージは、MakeAppx.exeを使用して手動で作成することもできます。 アセット パッケージに含めるファイルを指定するには、"マッピング ファイル" を作成する必要があります。 この例では、資産パッケージ内の唯一のファイルは "Video.mp4" ですが、すべての資産パッケージのファイルをここに一覧表示する必要があります。 ResourceMetadataResourceDimensions 指定子は、(リソース パッケージのマッピング ファイルと比較して) 資産パッケージでは省略されることに注意してください。

[ResourceMetadata]
"ResourceId"        "Videos"

[Files]
"Video.mp4"         "Video.mp4"

次のいずれかのコマンドを使用して、MakeAppx.exe (MSIX および .appx) を使用して資産パッケージを作成します。

MakeAppx.exe pack /r /m AppxManifest.xml /f MappingFile.txt /p Videos.appx
MakeAppx.exe pack /r /m AppxManifest.xml /f MappingFile.txt /p Videos.msix

ここでは、AppxManifest (ロゴ ファイル) で参照されているすべてのファイルを資産パッケージに移動できないことに注意してください。これらのファイルはアーキテクチャ パッケージ間で複製する必要があります。

資産パッケージには resources.pri も含めないようにする必要があります。MRT を使用して資産パッケージ ファイルにアクセスすることはできません。 アセット パッケージ ファイルにアクセスする方法と、アセット パッケージでアプリを NTFS ドライブにインストールする必要がある理由の詳細については、「 アセット パッケージとパッケージ フォールディングを使用した開発」を参照してください。

アセット パッケージの実行を許可するかどうかを制御するには、AppxManifest の Properties 要素で uap6:AllowExecution を使用できます。また、次のようにするには、最上位の Package 要素に uap6 を追加する必要があります。

<Package IgnorableNamespaces="uap uap6" 
xmlns:uap6="http://schemas.microsoft.com/appx/manifest/uap/windows10/6" 
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" 
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10">

指定しない場合、 AllowExecution の既定値は true です。実行可能ファイルのない資産パッケージの場合は false に設定され、発行が高速化されます。