Check the minimum requirements for the Windows 10 version
Windows 10 version 18362 or later is required for deployment testing of MSIXVC-based packages.Evaluate your packaging needs
If your package has any of the following properties or needs any of the following features, see the Other packaging considerations and advanced features section later in this article.- Framework package dependencies If your app relies on redistributable software, you can use prepackaged versions of many of these prerequisites from Microsoft, which you can declare as dependencies and install automatically.
- Custom installation actions If your app relies on redistributable software that doesn’t have a framework package available, you can chain-install these dependencies.
Prepare your content
Place all source material for your title in a single directory. Remove any files that the MSIXVC packaging system doesn’t support or that are unsuitable for shipping in retail packages.- Program database (PDB) files.
- Universal Windows Platform (UWP) and APPX footprint files, including AppxSignature.p7x and AppxBlockMap.xml. If you previously shipped as a UWP in Microsoft Store, you might have some of these files associated with your APPX or MSIX package. Remove these files.
- Any references to other PC game stores: assets, binaries, and more.
Get your product’s identity info 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.- If you haven’t already, register for the ID@XBOX program and create a Partner Center account.
- Create an initial product definition for your game in Partner Center.
- On the Game Setup | Identity page for your product, find the identity values listed above.
Create your MicrosoftGame.config XML file in the root folder, and then create 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 streamlines creation of your .config file and automatically syncs down ID and name values from your Partner Center project.Identify any Visual C/C++ runtime dependencies
Identify any Visual C/C++ runtime dependencies of your package. Ensure they’re listed as dependencies in your MicrosoftGame.config or are explicitly copied into your package payload. For more information, see Framework package dependencies.Create your icons for display in the shell and 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. Alternatively, 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, which includes the 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 PromptsCreate 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>
This command creates a file called layout.xml (this file name is the suggested name, but you can use any other name). Use this file during the packaging step. For more information on packaging tools, see Make package (makepkg.exe).
Use Intelligent Delivery to determine how to reduce installation sizes
To learn how to reduce installation sizes by tagging content in your layout.xml file, see Overview of Intelligent Delivery. Consider using Intelligent Delivery if you have sizable localized assets or content that shouldn’t be installed by default but should be available for download when triggered by your game.Create your package
Create the package by using the following command:MakePkg pack /f layout.xml /lt /d <Your_game_folder_name> /nogameos /pc /pd <Output_Folder_Name>
For licensing dependent scenarios, such as the in-game store and trial, use makepkg with the actual content ID. Partner Center generates this real content ID the first time it ingests the package. You can find it in the details of the submitted package on the Packages page.
Enable developer mode on your target PC
- Open Settings.
- Enter Developer in the search field. From the options displayed, select Use developer features.
- Select Developer mode. A dialog box appears, saying that the system is adding some features. Before moving beyond this step, wait for this process to finish.
Test your app installation
Run the following command:Wdapp install <Your_Package.msixvc>
The package must exist on a local drive on your development PC, or on a network location mapped to a drive letter. Installation from Universal Naming Convention (UNC) shares isn’t yet supported. If you don’t see progress, you can open the Microsoft Store app and view the progress under the Downloads and updates section indicated by a downward-pointing arrow in the upper-right corner of the app, if present. You can also select the ellipsis (…), and then select Downloads and updates.
As of the March 2022 Microsoft Game Development Kit (GDK), MSIXVC packages install to the [drive]:\XboxGames folder laid out as flat files that you can modify and access directly. You can configure this drive location by using Application Management (wdapp.exe). For more information on Flat File Install features, see Flat File Install Overview.
Prepare your final package, and then submit it to Partner Center
The package you created by using the previous MakePkg.exe command used the /LT parameter, which encrypts by using a test or development key. For maximum security, run the MakePkg.exe command again with the/LK flag to encrypt it by using a stable key or with the /L flag to encrypt it by using a unique key. Use /LK rather than /L because packages created with /LK can be used for local size delta comparisons and benefit from delta upload optimizations when submitting to Partner Center.
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 that you don’t need. While you can manually create the MicrosoftGame.config, the best way to create this file is by using the MicrosoftGame.config Editor. This tool also makes it easy to sync Identity and ID values directly from your Partner Center project.Other packaging considerations and advanced features
Framework packages for common software dependencies
If your app relies on some redistributable software and that software is available in the Microsoft Store as a framework package, declare a dependency on the framework package instead of chain-installing the redistributable. For example, if your app uses the legacy DirectX runtime which historically was satisfied by using the dxsetup.exe redistibuted from the Microsoft downloads site, declare a dependency on the framework package alongside the standard dependencies on Windows.Universal and Windows.Desktop as follows. This approach is preferred over installing the redist directly by using a custom install action, because the framework packages can automatically be updated via the Microsoft Store, and custom install actions require administrator approval and generate acknowledgment prompts as part of the install process.Mods support
Starting with the March 2022 Microsoft Game Development Kit (GDK), mods are supported by default. For more information, see Mods.Custom installation actions
If your app relies on other installers (.exe or .msi files) that must be chain-installed when your app is installed, use the CustomInstallActions element to configure this step. For redistributables, check whether a framework package is available and contains the prerequisites you need before deciding to use a custom installer for things like VC runtime or DirectX redistributable .exe or .msi files. For detailed instructions about custom installation actions, see Custom installation actions.Restricted capability permissions
In addition to configuring your MicrosoftGame.config file to include the correct elements, email your Account Manager to enable permissions to be set for your title to use the following features.- Custom installation actions (CustomInstallActions element).
