Skip to main content
Use the following steps to create an XVC package that you can sideload for testing on your Microsoft Game Development Kit, and then submit to Partner Center for publishing.

Get your product identity information from Partner Center

Your package references the product identity assigned to your game in Partner Center, including your publisher identity, PackageFamilyName, MSAAppId, and TitleId. Set up your product and retrieve this information from the Game Setup | Identity page for use in your MicrosoftGame.config.
  1. If you haven’t already, register for the ID@XBOX program and create a Partner Center account.
  2. Create an initial product definition for your game in Partner Center.
  3. On the Game Setup | Identity page for your product, find the identity values listed above.

Create your MicrosoftGame.config file in the root folder along with the rest of your game content

A sample MicrosoftGame.config XML file is included later in this article. Use this sample as a reference alongside the MicrosoftGame.config Editor, which can streamline creation of your .config file and automatically sync down ID and name values from your Partner Center project.

Create your icons for display in the shell and Microsoft Store packages

For each image listed in the following MicrosoftGame.config sample, place a corresponding file in the root folder of your game, scaled to the size specified. Alternately, you can place image assets in a subdirectory, and adjust the ShellVisuals icon paths to match. The MicrosoftGame.config Editor provides the ability to generate these images for you with a single source image as input.

Install the Microsoft Game Development Kit (GDK) (includes makepkg.exe packaging tool)

By default, the Microsoft Game Development Kit (GDK) command prompts are in this folder: C:\Program Files (x86)\Microsoft GDK\Command Prompts

Create your packaging layout mapping file

Open a Microsoft Game Development Kit (GDK) command prompt in the folder that contains a single folder with all your game content, and then run the following command: makepkg genmap /f layout.xml /d <Your_Game_Folder>

Create your package

How to create your package

Follow these steps to create an /lk encrypted package:
  1. One time: Run makepkg genkey /ekb SECRET_KEY.lekb to create the SECRET_KEY.lekb file. This file is the Local Escrowed Key Blob (LEKB) that stores the stable content key that encrypts your package. Store it in a secure location with need-to-know access. In an ideal setup, only official build machines and accounts should have access to it.
  2. Package creation: Run makepkg pack /lk SECRET_KEY.lekb /f layout.xml /d <Your_Game_Folder_Name> /pd <Output_Folder_Name>. This command creates a package encrypted using the key stored in the SECRET_KEY.lekb file.

Important notes on package encryption

The makepkg /lk switch encrypts the package by using a stable (always the same) key that the makepkg genkey command creates. In addition to your title package, makepkg /lk generates files named in the format PackageFullName_licenseName_GUID.EKB and PackageFullName_licenseName_GUID.CEKB. (Note the use of the underscore (_) character.) Use /lk encryption for development kit testing and submission on console. It offers these benefits when compared to test encryption (/lt) and submission encryption (/l):
  1. packageutil compare can generate correct update size estimates (unlike /l).
  2. It enables secure delta upload to Partner Center by using the same algorithm that consoles and PCs use to download content updates.
  3. You can install it onto devkits (unlike /l).
  4. It uses secure encryption key material and you can only decrypt it in specific environments (unlike /lt).

Test your package installation

Use the following command to test your package installation: xbapp install <Your_Package> If your package uses Intelligent Delivery Features, use the /i option to invoke the interactive shell UI for picking which package features to install for testing the retail end user experience. xbapp install /i <Your_Package>

Important notes on package installation

xbapp install will automatically install the CEKB file necessary to load the package onto an XBOX devkit. If you’re testing an install scenario other than tool-based install (game disc, external storage, console-to-console transfer) then the xbapp installkey command can be used to install only the CEKB file. See xbapp.exe for more details.
LEKB files generated before the April 2021 GDK won’t create a CEKB file. To use the new devkit sideloading feature, the LEKB file must be re-created with April 2021 or later GDK tools.

If you plan to create discs for your package see the following articles

Creating test compilation discs Creating cross-generation test discs

Submit your package to Microsoft Partner Center

The package you created by using the previous makepkg.exe command can be used for both testing and submission since the /lk flag was used to encrypt the package. You’ll also benefit from delta upload when uploading this package. The XVC and EKB files are uploaded to Partner Center as normal. The LEKB and CEKB files won’t be uploaded.

Sample MicrosoftGame.config

Create a file named MicrosoftGame.config. Use the following content in the root directory of your game content, and then remove any comments for items you don’t need. For more information, see the MicrosoftGame.config reference page. While you can manually create the MicrosoftGame.config, the best way to create this file is by using the MicrosoftGame.config Editor.
Getting started with packaging titles for a PC MicrosoftGame.Config Deploying your title to your XBOX dev kit
Last modified on August 20, 2026