Skip to main content
Creates app packages, uploads packages to Partner Center, and performs related packaging operations. makepkg supports the XVC, MSIXVC, and MSIXVC2 package formats. Use the /msixvc2 option to generate packages in the MSIXVC2 format.

Global options

Commands

  • pack - Creates a new app package from files on disk.
  • upload - Uploads a package or a directory of files to Partner Center.
  • genkey - Generates an encryption key for use with pack /lk.
  • genid - Converts between a Product ID GUID and a Store ID.
  • genmap - Generates a mapping XML file based on content on disk.
  • validate - Runs validation without creating a package.
  • updatesubval - Updates SubmissionValidator.dll without running another operation.
  • localize - Generates a Resources.pri file based on content on disk.

pack

Creates a new app package from files on disk.
Sample usage:

Options

Remarks

By default, makepkg pack encrypts XVC or MSIXVC packages by using a well-known encryption key recognized by all development kits for testing. These packages aren’t cryptographically protected. For additional upload protection, XVC and MSIXVC packages can use /l or /lk. Packages that use /l can’t be installed on a development kit or PC before upload. Packages that use /lk can be installed on a development kit before upload. Regardless of the upload encryption mode, the XBOX service encrypts the package for distribution with Microsoft-managed encryption keys. MSIXVC2 packages don’t use client-side upload encryption. The XBOX service handles encryption for distribution. For information about the mapping file schema, see Deployment package schema.

upload

Uploads a package to Partner Center. For MSIXVC2 only, the upload command can also package loose files and upload them in one operation when /d is specified. Loose file upload requires the /msixvc2 option. If a branch or flight isn’t specified, the package is uploaded to the main branch. The EKB file and Submission Validator log file should be in the same directory as the package and are uploaded automatically. A symbol bundle is also uploaded when present. The Store ID is extracted from the package, but it can be provided when the package was generated without one.
Sample usage (upload a prebuilt package):
Sample usage (package and upload loose files):

Package source options

Destination options

Authentication options

Validation and symbol options

Authentication methods

genkey

Generates a local escrowed key blob (LEKB) for use with pack /lk.
Provide the LEKB file to makepkg pack /lk to use a stable encryption key during package creation. This key:
  1. Allows packageutil compare to generate accurate update-size estimates.
  2. Enables secure delta uploads to Partner Center by using the same algorithm that consoles and PCs use to download content updates.
  3. Produces packages that can be installed on development kits.
  4. Uses secure encryption key material that can only be decrypted in specific environments.
The LEKB file contains lightly obfuscated encryption key material. Anyone who has both the LEKB file and the package can decrypt the package, so secure access to the file.

genid

Converts between a Product ID GUID and a Store ID.

genmap

Generates a mapping XML file based on content on disk. The generated file contains one chunk and can be edited to split content into multiple chunks or add Intelligent Delivery tags.

validate

Runs package validation without creating a package. Use this command to verify content and configuration before a full pack operation.
The validate command accepts the same options as pack.

updatesubval

Downloads, verifies, and installs the latest SubmissionValidator.dll without creating, validating, or uploading a package.

Options

Remarks

If SubmissionValidator.dll is already the latest version, the command reports that it’s current and exits successfully without downloading it. If the file is missing, the command installs it. On success, the command displays the version of SubmissionValidator.dll that’s on disk. Unlike the /updatesubval option used during packaging or validation, the standalone updatesubval command returns a nonzero exit code if the update fails. When used as an option, an update failure is non-fatal and the packaging or validation operation continues with the installed version of SubmissionValidator.dll.

localize

Generates a Resources.pri file based on content on disk.
For more information, see MicrosoftGame.config localization. MSIXVC2 packaging overview Getting started with MSIXVC2 for PC Deployment package schema XBOX Game Package Manager Automating package uploading
Last modified on August 20, 2026