詳細資料
- 以一般方式開發您的應用程式,參考所需可轉散發套件的匯出程式庫。
- 不要將相依的可轉散發套件與您的應用程式組合在一起,而是更新您的資訊清單,宣告對相關架構套件的相依性。
- 當使用者從 Microsoft Store 安裝您的應用程式時,它會偵測相依性,並確保架構套件可供應用程式使用。 如果使用者的裝置上已安裝架構套件,則不需要採取進一步的動作。否則,Microsoft Store 會先觸發架構套件的安裝,再繼續安裝使用該套件的應用程式。
- 應用程式的 x86 組建會使用架構套件的 x86 組建。應用程式的 x64 組建會使用架構套件的 x64 組建。您不需要執行任何動作來指定架構。平台會為您處理。
DirectX 執行階段
此架構套件提供來自舊版 DirectX SDK 的各種並存選用元件。如果您的應用程式使用已淘汰的 Direct3D 公用程式庫 D3DX9、D3DX10 或 D3DX11、XAudio 2.7、XInput 1.3 或 XACT,則可以使用此套件為您已封裝的 Win32 傳統型應用程式部署這些已淘汰的 DLL。如需這些元件的更多背景資訊,請參閱這篇部落格文章。絕大多數使用 DirectX 的遊戲實際上並不需要此「舊版 DirectX SDK」架構套件相依性。
- 對於 XAudio2,最佳選項是使用 Windows 10 SDK 中的標頭升級至 XAudio 2.9。在 Windows 10 中,XAudio 2.9、X3DAudio 和 XAPOFX 都內建於作業系統中。對於非 Store 版本,您可以使用 XAudio2Redist,它有一個簡單的應用程式本機可轉散發套件,可在 Windows 7 SP1 或更新版本上支援 XAudio2.9。這既可簡化部署,也能解決舊版 XAudio 2.7 的許多已知錯誤。請參閱 Microsoft Docs。
- 對於 XInput,最佳選項是使用 Windows 10 SDK 中的標頭來使用 XInput 1.4。在 Windows 10 中,XInput 1.4 包含在作業系統中。對於非 Store 版本,您可以使用 XInput 9.1.0,它從 Windows Vista 起就包含在作業系統中。請參閱這篇部落格文章。
強烈建議不要使用舊版 XInput 1.3,因為它有已知的安全性問題。架構套件中的版本已更新以緩解此問題,並更新為 SHA-256 程式碼簽署,但原始的舊版 DirectX End-User Runtime 套件並未變更。
-
對於 Direct3D 10 (
d3dx10),最佳選項是升級至 Direct3D 11。請參閱 Microsoft Docs。 -
對於 Direct3D 11 (
d3dx11),請參閱這篇部落格文章,了解適用於 Direct3D 11 之舊版 D3DX 的各種替代方案。
對於較舊的遊戲,您也可以考慮使用 Microsoft.DXSDK.D3DX NuGet 套件,它提供具有並存授權的 2010 年 6 月版 D3DX9、D3DX10 和 D3DX11。這些可轉散發 DLL 也經過 SHA-256 程式碼簽署。
- 對於 HLSL 編譯器 (
D3DCompiler),您可以使用 Windows 10 SDK 中的最新版本。在 Windows 10 中,它包含在作業系統中。對於非 Store 版本,您可以將D3DCompiler_47.dll作為簡單的應用程式本機檔案與遊戲一起包含。請參閱這篇部落格文章。
此架構套件和舊版 DirectX End-User Redistributable 都不會以任何方式修改 DirectX 執行階段。
MicrosoftGame.config 程式碼片段範例:
- 從 Microsoft 下載網站下載,然後按兩下 Appx 檔案進行安裝 (建議)。DirectX x86 架構套件、DirectX x64 架構套件
- 從「執行」應用程式輸入下列連結,以取得會安裝 DirectX 架構相依性套件的 DirectX 範例應用程式。(注意:這僅適用於 RETAIL 開發沙箱中的電腦,而且如果您使用的是 x64 平台電腦,只會安裝 x64 平台版本):ms-windows-store://pdp/?productid=9MTF6XHMN17Z
DirectX 架構套件不會將這些 DLL 安裝到 System32 資料夾中。它們位於您已封裝應用程式在執行階段的搜尋路徑中。如果您使用明確連結,請勿使用
LoadLibraryEx 旗標 LOAD_LIBRARY_SEARCH_SYSTEM32 或 LOAD_LIBRARY_SEARCH_APPLICATION_DIR 來載入這些舊版 DirectX 程式庫。此架構套件的 9.29.1974.0 版包含經過 SHA-256 程式碼簽署的承載 DLL,以及 XInput 1.3 的安全性修正。
Visual Studio C++ 執行階段
在 C/C++ 執行階段的特定情況下,傳統可轉散發套件形式和架構套件形式並不一定相同。傳統的非 Microsoft Store 應用程式一律使用傳統可轉散發套件形式。
前述安裝程式會將必要的架構套件放在下列 Extension SDKs 資料夾中:
%PROGRAMFILES(X86)%\Microsoft SDKs\Windows Kits\10\ExtensionSDKs
請務必側載與您應用程式架構相對應的版本:x86 或 x64。
若要在本機測試您的套件及其架構相依性,請找出用來建置應用程式的 Visual Studio 版本,側載對應的 APPX 架構套件,然後註冊您的應用程式。
如需詳細資訊,請參閱 Microsoft Docs。
Visual Studio 2012
以下是 Visual Studio 2012 VCLibs 架構套件 v11 的資訊清單項目範例。-
x86:
- 找到架構套件: C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop.110\14.0\Appx\Retail\x86\Microsoft.VCLibs.x86.11.00.Desktop.appx
-
按兩下進行安裝,或執行下列 Windows PowerShell 命令:
add-appxpackage "C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop.110\14.0\Appx\Retail\x86\Microsoft.VCLibs.x86.11.00.Desktop.appx"
-
x64:
- 找到架構套件: C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop.110\14.0\Appx\Retail\x64\Microsoft.VCLibs.x64.11.00.Desktop.appx
-
按兩下進行安裝,或執行下列 Windows PowerShell 命令:
add-appxpackage "C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop.110\14.0\Appx\Retail\x64\Microsoft.VCLibs.x64.11.00.Desktop.appx"
Visual Studio 2013
以下是 Visual Studio 2012 VCLibs 架構套件 v12 的資訊清單項目範例。-
x86:
- 找到架構套件: C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop.120\14.0\Appx\Retail\x86\Microsoft.VCLibs.x86.12.00.Desktop.appx
-
按兩下進行安裝,或執行下列 Windows PowerShell 命令:
add-appxpackage "C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop.110\14.0\Appx\Retail\x86\Microsoft.VCLibs.x86.11.00.Desktop.appx"
-
x64:
- 找到架構套件: C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop.120\14.0\Appx\Retail\x64\Microsoft.VCLibs.x64.12.00.Desktop.appx
-
按兩下進行安裝,或執行下列 Windows PowerShell 命令:
add-appxpackage "C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop.120\14.0\Appx\Retail\x64\Microsoft.VCLibs.x64.12.00.Desktop.appx"
Visual Studio 2015 - 2022
以下是 Visual Studio 2015 或更新版本 VCLibs 架構套件 v14 的資訊清單項目範例。-
x86:
- 找到架構套件: C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop\14.0\Appx\Retail\x86\Microsoft.VCLibs.x86.14.00.Desktop.appx
-
按兩下進行安裝,或執行下列 Windows PowerShell 命令:
add-appxpackage "C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop\14.0\Appx\Retail\x86\Microsoft.VCLibs.x86.14.00.Desktop.appx"
-
x64:
- 找到架構套件: C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop\14.0\Appx\Retail\x64\Microsoft.VCLibs.x64.14.00.Desktop.appx
-
按兩下進行安裝,或執行下列 Windows PowerShell 命令:
add-appxpackage "C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop\14.0\Appx\Retail\x64\Microsoft.VCLibs.x64.14.00.Desktop.appx"
本機測試
在您加入適當資訊清單的參考並側載 APPX 架構套件之後,請使用下列命令安裝應用程式的鬆散組建版本:WdApp.exe register loose_build_path
這可確保您的應用程式已安裝並參考正確的架構。現在,從 [開始] 功能表中的應用程式磚執行您的應用程式,然後為您的應用程式執行必要的測試和驗證步驟。
在側載設定中完成測試之後,請依照開始使用 MSIXVC 封裝工具為 PC 封裝遊戲主題中的指示建立 MSIXVC 套件。
如需詳細資訊,請參閱
在 Centennial 專案中使用 Visual C++ 執行階段部落格文章。