展開パッケージのスキーマ
makepkg ツールの入力として使用されるマッピング ファイルには、パッケージのコンテンツを記述する 5 つの許可された要素 (Package、Chunk、File、Recipe、Feature) が含まれています。 これらの要素は、全体的なパッケージ、パッケージの個々のストリーミング可能なセグメント (チャンク)、および各チャンク内のファイルを記述します。 Features により、ユーザーがインストールまたは削除することを選択できるチャンクのグループが許可され、また、Recipes によって特定のインストールに対して有効になっている一連の Features がユーザー、またはユーザーのホーム コンソールが所有する資格に結び付けられます。
小さなマッピング ファイルは次のコード例のようになります。
<Package>
<Chunk Id="1000" Marker="Launch">
<FileGroup DestinationPath="\" SourcePath="X:\bin" Include="*.*"/>
</Chunk>
<Chunk Id="1001">
<FileGroup DestinationPath="\Data\Maps" SourcePath="Y:\Maps\Level1" Include="*.map"/>
<FileGroup DestinationPath="\Data\Maps" SourcePath="Y:\Maps\Level2" Include="*.map"/>
<FileGroup DestinationPath="\Data\Maps" SourcePath="Y:\Maps\Level3" Include="*.map"/>
<FileGroup DestinationPath="\Data\Maps" SourcePath="W:\ExtraMaps" Include="*.map"/>
<FileGroup DestinationPath="\Data\Textures" SourcePath="M:\MapTextures" Include="*.png"/>
<FileGroup DestinationPath="\Data\Textures" SourcePath="W:\ExtraMapTextures" Include="*.png"/>
</Chunk>
</Package>
パッケージを生成するときは、MicrosoftGame.config とそれによって参照されているすべてのファイル (ロゴ、スプラッシュ画面など) が、ファイル グループに含まれている必要があります。 GameOs.xvd は、パッケージの生成の間にパッケージに自動的に埋め込まれるため、マッピング ファイルに含めないようにする必要があります。
次のマッピング ファイルでは、インテリジェント配信を使用してシステムによってインストールされるチャンクを制御する方法と、ユーザーがインストール時、またはそれ以降にシェル内から有効または無効にできる Features を定義する方法を示します。 各チャンクには、指定子を使用することができます。これを使用すると、デバイスの種類や本体の言語設定に基づいて、チャンクを選択的に配信することができます。 Features が使用されているすべてのパッケージでは、既定の Recipe を指定する必要があります。また、必要に応じて追加の Recipes を指定することもできます。
<Package>
<!-- Features bring down Chunks with the associated Tags.
Users can override install defaults to deselect features they don't want,
and can add/remove features from within the shell after install as well. -->
<Features>
<Feature Id="CampaignFeature" DisplayName="MyGame Campaign Name" Image="CampaignLogo.png" Tags="CampaignTag" />
<Feature Id="MultiPlayerFeature" DisplayName="MyGame Multiplayer Name" Image="MPLogo.png" Tags="MPTag" />
<Feature Id="PremiumFeature" Image="PremiumLogo.png" Tags="PremiumTag" />
</Features>
<!-- Recipes declare which Features are included for a given install.
Recipes are additive, and persist for the life of an install,
They are never removed, though users can choose to add/remove individual Features -->
<Recipes>
<!-- default Recipe is always active -->
<Recipe Id="default" IncludedFeatures="CampaignFeature;MPFeature"/>
<!-- PremiumProduct Recipe is active, causing PremiumFeature to be installed if user owns 9PXXXXXXXXXX -->
<Recipe Id="PremiumProduct" IncludedFeatures="PremiumFeature">
<StoreId>9PXXXXXXXXXX</StoreId>
</Recipe>
</Recipes>
<Chunk Id="1000" Marker="Launch">
<FileGroup DestinationPath="\" SourcePath="X:\bin" Include="*.*"/>
<FileGroup DestinationPath="\Maps" SourcePath=".\Maps" Include="map.idx"/>
</Chunk>
<Chunk Id="2000">
<FileGroup DestinationPath="\Maps" SourcePath=".\Maps" Include="*.map"/>
</Chunk>
<Chunk Id="3000">
<FileGroup DestinationPath="\Maps" SourcePath="Z:\Extras" Include="*.map"/>
<FileGroup DestinationPath="\Pics" SourcePath=".\Images" Include="*.png"/>
<FileGroup DestinationPath="\Pics" SourcePath="Z:\Extras" Include="*.png"/>
</Chunk>
<!--Chunk 4000 will be installed if the best language fit for the console language is French-->
<!--Make sure that any language specifiers used here are also in your MicrosoftGame.config-->
<Chunk Id="4000" Languages="fr">
<FileGroup DestinationPath="\Localized\Fr" SourcePath="Z:\Localized\fr" Include="*.dat"/>
</Chunk>
<!--Chunk 5000 will be installed on Anaconda consoles-->
<Chunk Id="5000" Devices="Xbox-Anaconda">
<FileGroup DestinationPath="\Anaconda" SourcePath="Z:\Anaconda" Include="*.dat"/>
</Chunk>
<!--Chunk 6000 contains the Campaign mode content-->
<Chunk Id="6000" Tags="CampaignTag">
<FileGroup DestinationPath="\Campaign" SourcePath="Z:\Campaign" Include="*.dat"/>
</Chunk>
<!--Chunk 6100 contains the Campaign mode content specific to French language-->
<Chunk Id="6100" Tags="CampaignTag" Languages="fr">
<FileGroup DestinationPath="\Campaign\fr" SourcePath="Z:\Campaign\fr" Include="*.dat"/>
</Chunk>
<!--Chunk 6200 contains the Campaign mode content specific to English language-->
<Chunk Id="6200" Tags="CampaignTag" Languages="en">
<FileGroup DestinationPath="\Campaign\en" SourcePath="Z:\Campaign\en" Include="*.dat"/>
</Chunk>
<!--Chunk 7000 contains the Multiplayer mode content-->
<Chunk Id="7000" Tags="MPTag">
<FileGroup DestinationPath="\Multiplayer" SourcePath="Z:\Multiplayer" Include="*.dat"/>
</Chunk>
<!--Chunk 7100 contains the Multiplayer mode content specific to French language-->
<Chunk Id="7100" Tags="MPTag" Languages="fr">
<FileGroup DestinationPath="\Multiplayer\fr" SourcePath="Z:\Multiplayer\fr" Include="*.dat"/>
</Chunk>
<!--Chunk 7200 contains the Multiplayer mode content specific to English language-->
<Chunk Id="7200" Tags="MPTag" Languages="en">
<FileGroup DestinationPath="\Multiplayer\en" SourcePath="Z:\Multiplayer\en" Include="*.dat"/>
</Chunk>
<!--Chunk 8000 contains the premium content which is triggered for download by the PremiumProduct
Recipe if user owns ProductID 9PXXXXXXXXXX-->
<Chunk Id="8000" Tags="PremiumTag">
<FileGroup DestinationPath="\Premium" SourcePath="Z:\premium" Include="*.dat"/>
</Chunk>
</Package>
チャンク
グループとしてインストールする必要があるファイルのコレクションを記述します。
FileGroup
チャンクにファイルを追加するルールを記述します。
Package
タイトルの完全なインストールを構成するチャンクのコレクションを記述します。