배포 패키지 스키마
makepkg 도구의 입력으로 사용되는 매핑 파일에는 패키지의 내용을 설명하는 5개의 허용되는 요소인 패키지, 청크, 파일, 레시피, 기능이 있습니다. 이러한 요소는 전체 패키지, 패키지의 개별 스트리밍 가능한 세그먼트(청크), 각 청크의 파일을 설명합니다. 기능을 사용하면 사용자가 선택할 수 있는 청크 그룹을 설치 또는 제거할 수 있으며, 레시피를 사용하면 지정된 설치에 대해 사용하도록 설정한 기능 집합을 사용자 또는 사용자용 콘솔이 소유한 권한에 연결할 수 있습니다.
작은 매핑 파일은 다음 코드 예제처럼 보일 수 있습니다.
<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는 패키지 생성 시 패키지에 자동으로 내장되므로 매핑 파일에 포함해선 안 됩니다.
지능형 전달 예
다음 매핑 파일에서는 지능형 전달을 사용하여 시스템에서 설치되는 청크를 제어하는 방법을 보여 주며 사용자가 설치 시 및 이후에 셸에서 활성화 또는 비활성화하도록 선택할 수 있는 기능을 정의합니다. 각 청크에는 지정자가 있을 수 있으므로 청크는 본체의 장치 유형 및 언어 설정에 따라 선택적으로 전달 될 수 있습니다. 기능을 사용하는 모든 패키지는 기본 레시피도 지정해야 하며 선택적으로 추가 레시피를 지정할 수 있습니다.
<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>
이 섹션의 내용
청크
그룹으로 설치해야 하는 파일 컬렉션을 설명합니다.
파일 그룹
파일을 청크에 추가하는 규칙을 설명합니다.
패키지
타이틀의 완전한 설치 환경을 구성하는 청크 컬렉션을 설명합니다.