メインコンテンツへスキップ
Microsoft Game Development Kit (GDK) の現在のバージョンでは、レイアウトはコードの共有を中心に最適化され、特定のプラットフォームに重点が置かれていました。このレイアウトのビルド統合は、MSBuild カスタム プラットフォームで複雑さを隠すことに大きく依存していました。新しいレイアウトでは、統合の簡素化、増え続けるターゲット プラットフォームのサポート、および標準の MSBuild プラットフォームと Microsoft 以外のビルド システムの両方のサポートの向上に重点を置いています。

以前のヘッダーとライブラリのレイアウト

Microsoft GDK の既存のファイル レイアウトの概要は次のとおりです。
Gaming.Desktop.x64 カスタム MSBuild プラットフォームは、これらすべてのコンテンツをさまざまな方法で組み合わせる include/lib パスを構築するロジックを実装しています。CMake またはカスタムの make ソリューションを使用していた場合は、このロジックをそこでも実装する必要がありました。詳細な例については、CMakeExample の April 2025 バージョンを参照してください。 October 2025 GDK には、以前のスタイルと新しいスタイルの両方をサポートするために、以前のレイアウトも引き続き含まれています。既定では、新しいレイアウトと以前のレイアウトの両方がインストールされます。GDK のセットアップには、新しいレイアウトのみをインストールするオプションが追加されました。将来の GDK では、ハード ドライブの使用量と全体的なダウンロード サイズを削減するために、以前のレイアウトが削除されます。以前のレイアウトの削除は、現時点では October 2025 GDK のリリースから 1 年後を目標としています。

新しいヘッダーとライブラリのレイアウト

October 2025 GDK リリースでは、新しいレイアウトにより、ヘッダーとライブラリの代替レイアウトが提供されます。これにより、プラットフォームの統合が容易になり、今後追加されるプラットフォームにも対応できるようになります。

MSBuild カスタム プラットフォームで新しいレイアウトを使用する

既存の Gaming.*.x64 MSBuild プラットフォームは既定で以前のレイアウトを使用しますが、GDKCrossPlatform プロパティを設定することで新しいレイアウトを有効にできます。
これにより、以前のレイアウトで使用されていたさまざまな複雑なパスの代わりに、適切な include/lib パスがプロジェクトに追加されます。 この新しい簡素化された統合では、拡張ライブラリのメカニズムは使用されなくなりました。既定では、すべてのコンテンツがビルド時に include/lib パスで使用できます。 次に、プロジェクトは使用する追加のライブラリにリンクする必要があります。以前の GDK プロジェクト テンプレートに基づいて作成されたプロジェクトには、次のようなステートメントが含まれているはずです。
新しいレイアウトでは、Console_Libs プロパティに必須のコア ライブラリが一覧表示されます。 拡張ライブラリはそれぞれ ‘オプトイン’ であるため、プロジェクトは使用する拡張ライブラリを AdditionalDependencies に追加する必要があります。 また、プロジェクトは使用する追加の DLL をレイアウトにコピーする必要があります。これは、多くの DLL ライブラリの統合で一般的なカスタム ビルド ステップを使用するか、vcxproj を編集するか props ファイルを追加して ReferenceCopyLocalPaths 項目グループ リストを使用することで行えます。以下の MSBuild には使用可能なすべての DLL が記載されていますが、個々のプロジェクトで必要になるのはその一部だけです。
GameDKLatest は、Microsoft GDK with XBOX Extensions によってのみ設定されます。そのため、Microsoft GDK の両方のバージョンのサイド バイ サイド インストールを完全にサポートする新しい環境変数を導入しました。GameDKCoreLatest は Microsoft GDK によって設定されます。

Directory.Build.props ファイルを使用する

新しいレイアウトを使用して既存の GDK Gaming.*.x64 プロジェクトをすばやく検証する方法として、ソース ツリー内の Directory.Build.props という名前のファイルに次の内容を配置します。これにより、新しいレイアウトが有効になり、プロジェクトで使用されていない場合でも、ほとんどまたはすべての拡張ライブラリが含まれます。
GDKCrossPlatform を true に設定してビルドする場合、GDKExtLibNames プロパティは MSBuild ルールでは使用されません。このプロパティは以前の MSBuild ルールでのビルド用に既に存在しているため、この props ファイルでは、レイアウトに一部の追加 DLL を含めるための手段として使用しています。

x64 ゲームを更新して ARM64 を追加する方法

既存の x64 ゲーム プロジェクトに ARM64 のサポートを追加するには、次の手順に従います。
  1. Visual Studio 2022 を使用します。 ARM64 のサポートには Visual Studio 2022 が必要です。Visual Studio 2019 は ARM64 ビルドではサポートされていません。
  2. 新しいレイアウトを有効にします。 プロジェクト ファイルで GDKCrossPlatform を true に設定して、プロジェクトが新しいレイアウトを使用するようにします。
  3. ARM64 構成を作成します。 既存の x64 構成 (Debug や Release など) をコピーして、対応する ARM64 構成を作成します。
  4. ライブラリ パスを更新します。 ARM64 構成の VC++ ディレクトリを編集して、ライブラリ パスが lib\x64 ではなく lib\arm64 を参照するようにします。
  5. XSAPI ライブラリの参照を更新します。 (ARM64 だけでなく) すべての 構成のリンク ステートメントを更新して、Microsoft.Xbox.Services.142.GDK.C.lib ではなく Microsoft.Xbox.Services.143.GDK.C.lib を使用するようにします。
  6. ReferenceCopyLocalPaths を更新します。 .vcxproj ファイル内で ReferenceCopyLocalPaths が使用されている箇所を確認し、x64 ではなく arm64 の bin フォルダーを参照するように更新が必要かどうかを確認します。
タイトルの起動がエラー 0xc000007b で失敗する場合は、誤って x64 形式の DLL を ARM64 プロセスに読み込もうとしたことを意味します。プロジェクト システムで、更新が必要な可能性のある ReferenceCopyLocalPaths 項目を確認してください。

MSBuild x64 プラットフォームで新しいレイアウトを使用する

Gaming.Desktop.x64 プラットフォームを使用する代わりに、標準の x64 プラットフォームを使用して PC 向けにビルドできます。以前のレイアウトでは、「Microsoft Game Development Kit (GDK) で x64 プラットフォームを使用する」で詳しく説明されているように、拡張ライブラリ用の <Import Project="...\ExtensionLibrary.props"> ステートメントを追加する必要がありました。 新しいレイアウトでは、統合の手順が簡素化されています。
必要なすべての拡張ライブラリを、元のリストと共に AdditionalDependencies に追加します。
オプトインの拡張ライブラリ DLL は、上記のように、カスタム ビルド アクションを使用するか、最終的なレイアウト用の ReferenceCopyLocalPaths 項目グループを使用して、バイナリ ディレクトリにコピーする必要があります。 PreprocessorDefinitions と、画像アセットを含む .mgc ファイルの処理に関する残りの手順は変わりません。

CMake で新しいレイアウトを使用する

CMake で Microsoft Visual Studio ジェネレーターを使用し、Gaming.*.x64 カスタム MSBuild プラットフォームを使用する場合は、次のコードを使用して新しいレイアウトを有効にします。
CMakeGDKExample では、VS_GLOBAL_GDKExtLibNames の使用を削除し、使用する拡張 DLL をレイアウトにコピーするために、次のコード (CMake 3.21 以降を想定) に置き換えます。

カスタム ビルド システムで新しいレイアウトを使用する

GDK を使用して Windows x64 向けにビルドするには、次のものが必要です。

インストールされたファイルからビルド エディションを読み取る

新しいレイアウトには grdk.ini ファイルは含まれていません。ファイルを解析してエディション情報を取得するには、grdk.h を使用します。 以前の GDK リリースでも動作する PowerShell の例を次に示します。
最終更新日 2026年10月20日