The directory structure described in this article is the simplified (cross-platform) layout introduced with the October 2025 GDK.Beginning with the October 2026 GDK, the simplified layout is installed by default. The legacy layout remains available as an optional, deprecated compatibility path for teams that need additional migration time.The legacy layout will no longer be supported and will be removed from the installer starting with the April 2027 GDK release.
Old headers and libraries layout
The existing file layout for the Microsoft GDK is summarized as follows.New headers and libraries layout
For the October 2025 GDK release, it now offers an alteranative layout for the headers and libraries that make the platform integration much easier and able to accommodate additional platforms over time.Using the new layout with MSBuild custom platforms
The existing Gaming.*.x64 MSBuild platforms will use the old layout by default, but you can opt into the new layout by setting the GDKCrossPlatform property.
The project needs to add to AdditionalDependencies the extension libraries it consumes because they’re each ‘opt-in’.
The project also needs to copy the additional DLLs it uses into the layout. This can be done either via Custom Build steps that are typical of many DLL library integrations, or by editing the vcxproj or adding a props file to use the ReferenceCopyLocalPaths item group list. The MSBuild below lists all the possible DLLs but individual projects will only need some of these.
GameDKLatest is only set by the Microsoft GDK with XBOX Extensions. As a result, we introduced new environment variables that fully support side-by-side installation of both versions of the Microsoft GDK: GameDKCoreLatest is set by the Microsoft GDK. GameDKXboxLatest is set by the Microsoft GDK with XBOX Extensions.Using a Directory.Build.props
As a way to quickly validate existing GDK Gaming.*.x64 projects by using the new layout, place the following content into a file named Directory.Build.props in your source tree. This opts in to the new layout and includes most or all extension libraries even if not used by the project.The GDKExtLibNames property isn’t used by the MSBuild rules when building with GDKCrossPlatform set to true. Because it’s already present for building with the older MSBuild rules, it is used in this props file as a way to opt in to some additional DLLs in the layout.
Using the new layout with the MSBuild x64 platform
Instead of using the Gaming.Desktop.x64 platform, you can use the stock x64 platform to build for PC. In the old layout, this required adding<Import Project="...\ExtensionLibrary.props"> statements for the Extension Libraries as detailed in the Using the x64 platform with the Microsoft Game Development Kit (GDK).
In the new layout, the integration instructions are streamlined.
Using the new layout with CMake
When using the Microsoft Visual Studio generators with CMake and using the Gaming.*.x64 custom MSBuild platforms, the new layout is enabled with the following.VS_GLOBAL_GDKExtLibNames and replace it with the following (assuming CMake 3.21 or later) to copy the used extension DLLs into the layout.
Using the new layout with custom build systems
Building for Windows x64 by using the GDK requires the following.Using the new layout for PC content tools
For console development, some kinds of content ‘cooking’ take place on the development PC using XTF APIs, the XMA2 encoding library, and/or custom Direct3D 12.X tooling. Accessing this content requires specific build setup: Building PC tools that target both XBOX One and XBOX Series X|S requires:Reading build edition from an installed file
The new layout does not contain thegrdk.ini or gxdk.ini files. To find the edition information by parsing a file, use grdk.h or gxdk.h.
Here is an example in PowerShell that works with older GDK releases as well.
Build without install (BWOI)
The MSBuild custom build platform files that were originally located under<edition>\flatDeployment in the old layout are now located under <edition>\xbox\build with shortened paths.
For example, to setup a BWOI MSBuild rule folder for VS 2022, use these commands.
