什麼是 MicrosoftGame.config?
透過 Microsoft Store 發佈的每個遊戲都必須包含一個資訊清單,至少宣告遊戲的身分識別、發行者名稱,以及一組遊戲特定的殼層視覺效果 (字串、圖示和影像),用於在 Microsoft Store 和殼層 (主機) 以及 [開始] 功能表、工作列和 Windows 殼層中的其他位置 (PC) 顯示遊戲的名稱和圖形表示。此外,遊戲可以實作選用功能,例如可下載內容 (DLC),這些功能依賴的設定值同樣儲存在遊戲的資訊清單中。資訊清單檔案的名稱為 MicrosoftGame.config。為什麼要建立新的資訊清單結構描述?
Microsoft Store 中的每個套件都包含一個名為 AppXManifest.xml 的資訊清單。其結構描述經過多年演進,以容納廣泛的應用程式功能和案例。 透過 MicrosoftGame.config,遊戲開發人員可以使用更簡單、以遊戲為中心的資訊清單結構描述,更容易使用、更不容易出錯,也更有效率。當開發人員封裝或註冊遊戲時,工具會驗證 MicrosoftGame.config 的內容,並代表遊戲開發人員產生格式正確的 AppXManifest.xml。產生的AppXManifest 會包含在產生的套件中。
自 2022 年 3 月的 Microsoft Game Development Kit (GDK) 起,對於使用此 Microsoft Game Development Kit (GDK) 及未來版本建立的新遊戲,Game configVersion 已從 0 更新為 1。現有遊戲可以選擇採用此版本更新,以利用這些改進。如需詳細資訊,請參閱 MicrosoftGame.config 參考 (範例 MicrosoftGame.config 與結構描述)。
可用的文件
在 Microsoft Game Development Kit (GDK) 的離線文件檔案 (GDK.chm) 中,您可以在下表所示的位置找到 MicrosoftGame.config 的相關文件。建立 MicrosoftGame.config
為 Gaming.Desktop.x64、Gaming.Xbox.XboxOne.x64 或 Gaming.Xbox.Scarlett.x64 平台建立新專案時,Visual Studio 中的專案會關聯一個 MicrosoftGameConfig.mgc。它具有預設值,可讓您在 PC 和 XBOX 上進行早期開發,在您開始使用 Gaming Runtime、Microsoft Store 和遊戲身分識別中的功能之前,不需要進一步設定。 建置專案時,MicrosoftGameConfig.mgc 在複製到專案的輸出目錄時,會重新命名為 MicrosoftGame.config。 以下是 XBOX 的預設 MicrosoftGameConfig.mgc 範例。如果您手動將 Microsoftgame.config 檔案新增至專案,必須確定將檔案屬性變更為
copy 檔案類型。手動新增 MicrosoftGame.config 檔案
您也可以手動將一或多個 MicrosoftGame.config 檔案新增至專案。手動新增檔案有兩種方式:- 在現有檔案上設定適當的屬性,讓 Visual Studio 將其識別為 MicrosoftGame.config 檔案。
- 使用 Microsoft Game Development Kit (GDK) C++ 專案系統所提供的項目範本。
- 將組態設定為 “Gaming.Xbox.XboxOne.x64”、“Gaming.Xbox.Scarlett.x64” 或 “Gaming.Desktop.x64” 平台。
- 將遊戲的 MicrosoftGame.config 檔案新增為 Visual Studio 專案中的檔案。
- 在 MicrosoftGame.config 檔案的屬性中,將 [項目類型] 設定為 Microsoft Game Config,如下所示。

- 以滑鼠右鍵按一下專案,然後選取 [加入] -> [新增項目]。
- MicrosoftGameConfig.mgc 範本位於樹狀結構的 Visual C++->Gaming->Microsoft Game Development Kit->Edition 節點中,如下所示。

MicrosoftGame.config 的 Visual Studio 專案屬性
每當 MicrosoftGameConfig.mgc 檔案新增至專案時 (無論是在建立專案時自動新增,或是手動新增),Visual Studio 專案都會新增一個屬性 (MGCCompile)。專案系統會使用 MGCCompile 屬性自動執行下列作業:
- 如果您有當地語系化的字串資源,則產生 .pri 檔案
- 必要時將 MicrosoftGameConfig.mgc 檔案重新命名為 MicrosoftGame.config
- 將 MicrosoftGame.config 複製到輸出資料夾
- 在建置後註冊 MicrosoftGame.config
- 在偵錯工具中以身分識別啟動遊戲
在 Visual Studio 和 MSBuild 中管理多個 MicrosoftGameConfig.mgc 檔案
一個 Microsoft Game Development Kit (GDK) Visual Studio 專案可能關聯多個 MicrosoftGameConfig.mgc 檔案。例如,針對不同的組建組態,或針對 XBOX 和 PC 組建使用不同的 MicrosoftGameConfig.mgc 檔案是很常見的做法。如果您先前使用自訂建置邏輯來管理多個 MicrosoftGameConfig.mgc 檔案,專案系統現在已直接支援此案例。 有兩種方式可以將 MicrosoftGameConfig.mgc 檔案指派給個別的組建組態。首先,XBOX Gaming Project Control 工具視窗支援管理多個 MicrosoftGameConfig.mgc 檔案 (NDA 主題),如下所示。
MGCCompile 屬性的 DefaultApplyTo 元素指定預設的 MicrosoftGameConfig.mgc 檔案。除非明確覆寫,否則所有組態都會使用此預設檔案。使用 MGCCompile 屬性的 ApplyTo 元素,將組態檔指派給特定的組建組態。
下列專案檔片段將 MicrosoftGameConfig_dev.mgc 指定為預設組態檔。除了 Release 以外的所有組建組態都會使用 MicrosoftGameConfig_dev.mgc,而 Release 已指定覆寫 (MicrosoftGameConfig_release.mgc)。
MicrosoftGame.config 的 IntelliSense 支援
在 Visual Studio 中修改 MicrosoftGame.config 現在支援 IntelliSense 功能。這可提供額外的深入資訊,如下列兩個螢幕擷取畫面所示。 撰寫元素時,會自動列出有效的元素名稱。

MicrosoftGame.config 的平台需求
為遊戲建立 MicrosoftGame.config 檔案時,您需要為每個 Microsoft Game Development Kit (GDK) 平台 (Gaming.Xbox.XboxOne.x64、Gaming.Xbox.Scarlett.x64 和 Gaming.Desktop.x64) 各建立一個。這是為了確保儲存在 MicrosoftGame.config 中的元素值與建置可執行檔所針對的平台具有一對一的對應。這主要是由 MicrosoftGame.config 檔案中Executable 元素的 TargetDeviceFamily 屬性所指定。如需詳細資訊,請參閱參考主題中的其他元素詳細資料一節。
啟動遊戲時,其行為會因平台需求、啟動遊戲的裝置以及可執行檔類型而有所不同,如下表所示。
在 XBOX Series X|S 遊戲於沒有 MicrosoftGame.config 的情況下在 XBOX Series X 開發套件上啟動的案例中,它會在適用時重複使用現有的 Microsoft Game Development Kit (GDK) VM 狀態。例如,如果在嘗試啟動 XBOX Series X|S 原生遊戲之前,已啟動回溯相容的 Microsoft Game Development Kit (GDK) 遊戲 (在 XBOX Series X|S 上執行的 XBOX One 遊戲),它就會使用同一個回溯相容 Microsoft Game Development Kit (GDK) VM 來執行。如果您遇到此案例,建議使用設定了 TargetDeviceFamily 的 MicrosoftGame.config 來表示正確的意圖。ERA 遊戲會在個別的 VM 狀態中執行,因此在此案例中不會影響 Microsoft Game Development Kit (GDK) VM 的行為。
在 Visual Studio 以外建立和編輯 MicrosoftGame.config
如上所述,Visual Studio 提供許多方式來建立和管理遊戲的 MicrosoftGame.config 檔案。除了在 Visual Studio 中建立和編輯之外,還有一個獨立工具可直接建立和撰寫 MicrosoftGame.config。 MicrosoftGame.config 編輯器是一個 UI 工具,可讓您更輕鬆地撰寫和編輯 .config 檔案。此編輯器也包含與 Partner Center 中遊戲資訊的連結,可透過 Store 關聯精靈自動下載並同步資訊,例如 TitleId、MSAAppId 和 StoreId。歡迎提供意見反應,請使用編輯器中的建議工具讓我們知道您的想法。在沒有 MicrosoftGame.config 的情況下啟動遊戲
在 Microsoft Game Development Kit (GDK) 中,您可以在沒有 MicrosoftGame.config 的情況下啟動 PC 遊戲或 XBOX 遊戲。這是為了在建立 MicrosoftGame.config 之前進行早期開發而允許的,目的是在您想要選擇使用 Gaming Runtime、Microsoft Store 和遊戲身分識別中的功能時提供彈性。若要使用 Microsoft Game Development Kit (GDK) 發行遊戲,在提交至 Microsoft Store 之前,必須要有 MicrosoftGame.config 才能建立遊戲套件。建議您在開始開發需要 Gaming Runtime、XBOX services、Microsoft Store 或遊戲身分識別的功能時,就立即採用並設定遊戲的 MicrosoftGame.config。 沒有 MicrosoftGame.config 的 PC 遊戲可以建置,並可透過按兩下建置的可執行檔來啟動。它們在執行時不會整合任何 Gaming Runtime 功能。若要支援 Gaming Runtime 功能、遊戲身分識別、MSIXVC 封裝支援以及提交至 Microsoft Store 的能力,必須要有 MicrosoftGame.config。 沒有 MicrosoftGame.config 的 XBOX 遊戲可以使用 GDK 工具來部署鬆散檔案組建、啟動、偵錯,並可直接使用一部分的 Microsoft Game Development Kit (GDK) 功能。若要支援完整的 Microsoft Game Development Kit (GDK) 功能、遊戲身分識別、XVC 封裝支援以及提交至 Microsoft Store 的能力,必須要有 MicrosoftGame.config。 若要在 XBOX 上不使用 MicrosoftGame.config 啟動遊戲,您可以:- 使用 xbapp.exe (NDA 主題) launch。
- 使用 XBOX Manager 的部署/啟動功能。
- 從 XBOX 上的 Developer Home (Dev Home) 啟動遊戲。
啟動 Win32 遊戲
未使用 Gaming Runtime 或遊戲雲端服務的 Win32 PC 遊戲,可以像其他任何 Windows 可執行檔一樣啟動和/或偵錯。只要用滑鼠按一下遊戲可執行檔,或直接在命令提示字元視窗中執行可執行檔,就會建立遊戲處理序。 遊戲服務會代表遊戲執行工作。若要使用 Gaming Runtime 或遊戲雲端服務,遊戲必須提供內容資料。例如,遊戲可以將稱為遊戲身分識別的唯一識別碼傳遞給 XBOX services,讓服務識別是哪個遊戲將成就授與玩家。遊戲身分識別等內容資訊可以透過稱為註冊的程序,持續儲存在 Windows 應用程式存放庫中。遊戲也是透過註冊來指定 Windows 殼層應使用哪些字串和標誌,在 [開始] 功能表的應用程式清單中代表遊戲。 透過稱為應用程式啟動 (app-launch) 的動作,會建立遊戲處理序,並讓遊戲能夠存取應用程式存放庫中的持續性內容資訊。如果您不是以應用程式啟動的方式啟動遊戲,雖然會建立執行遊戲的處理序,但無法使用其內容。這會導致遊戲無法正確使用 Gaming Runtime 和遊戲雲端服務。 您可以透過下列任一方式以應用程式啟動的方式啟動遊戲。- [開始] 功能表 (應用程式清單、應用程式磚)
- 工作列搜尋 (搜尋結果清單/詳細資料面板)
- wdapp.exe launch
- Windows Device Portal (WDP):Installed Apps > Start
偵錯 Win32 遊戲
在 Microsoft Game Development Kit (GDK) 中,選取 F5 以建置並執行時,Win32 PC 遊戲會經過註冊和應用程式啟動路徑。這讓此工作流程達到與 XBOX 上相同的標準。 關於 Win32 PC 上的「偵錯已安裝的應用程式套件」,如果遊戲的資訊清單名為 MicrosoftGame.config,Visual Studio 中的「偵錯已安裝的應用程式套件」不會將您的遊戲新增至可偵錯的套件清單。只有當可執行檔所在的資料夾中有名為 AppXManifest.xml 的檔案時,「偵錯已安裝的應用程式套件」才會將您的遊戲識別為套件。若要解決此問題,您可以建立一個包含遊戲有效值的簡單AppXManifest,並手動將其儲存在可執行檔和 MicrosoftGame.config 所在的資料夾中。
