다음을 통해 공유


배포 패키지 스키마

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>

이 섹션의 내용

청크
그룹으로 설치해야 하는 파일 컬렉션을 설명합니다.

파일 그룹
파일을 청크에 추가하는 규칙을 설명합니다.

패키지
타이틀의 완전한 설치 환경을 구성하는 청크 컬렉션을 설명합니다.

참고 항목

패키지 만들기(makepkg.exe)