將應用程式架構從 Arm32 更新為 Arm64
本指南將涵蓋將現有應用程式變更為支援 32 位元 Arm 平台架構的建議步驟,透過使用 Visual Studio 新增必要的組態,將更新的 64 位元 Arm 架構新增至更新的 64 位元 Arm 架構。 此更新可協助您的應用程式在使用 64 位元 Arm (ARM64/AArch64) 處理器的最新 Windows 上執行。
本主題與沒有 ARM64 目標的 UWP 應用程式相關。 舊版 UWP 專案範本會產生 ARM32 (或 AArch32) 目標,但不包含 ARM64 (AArch64) 的支援。
若要檢查您應用程式的目前解決方案平台,以查看 ARM64 是否存在,請在 Visual Studio 中開啟您的應用程式專案程式碼,然後在 [標準] 工具列的 [解決方案平台] 下拉式功能表中,選取 [組態管理員...],您可以在其中檢視解決方案平台清單,並確認 ARM64 是否存在。
注意
在 Arm 處理器上執行的 Windows 裝置 (例如來自 Qualcomm 的 Snapdragon 處理器) 將不再支援 AArch32 (Arm32)。 這項變更會影響目前以 AArch32 (Arm32) 為目標的應用程式通用 Windows 平台。 在 Windows 11 的未來版本中,將移除對 32 位元 Arm 版本應用程式的支援。 也會移除 ARM32 支援的系統二進位檔 (出現在 sysarm32 資料夾中)。 在這項變更之後,針對少數受影響的應用程式,應用程式功能可能會不同,而且您可能會注意到效能的差異。 因此,建議您儘快將目標平台更新為 AArch64 (Arm64),該平台在 Arm 裝置上所有 Windows 上都受到支援,以確保您的客戶能夠繼續享有最佳體驗。 請遵循此頁面上的指引,將您的應用程式更新為 AArch64 (Arm64)。
將 ARM64 組態新增至您的專案。
若要將 ARM64 解決方案平台新增至現有的應用程式項目程式碼:
- 在 Visual Studio 中開啟您的解決方案 (專案程式碼) (需要 Visual Studio 2017 15.9 版或更新版本)。
- 在 [標準] 工具列的 [解決方案平台] 下拉式功能表中,選取 [組態管理員...]
- 開啟 [作用中解決方案平台] 下拉式功能表,然後選取 [新增...]<>。
- 在 [輸入或選取新平台] 下拉式功能表中,選取 ARM64,並確定 [複製設定值來源] 值設定為 ARM 並啟用 [建立新專案平台] 核取方塊,然後選取 [確定]。
建置您的 Arm64 解決方案
將 Arm64 解決方案平台新增至現有的專案或解決方案之後,如果您想要確認應用程式的 Arm64 版本已正確建置,請關閉 [作用中解決方案平台] 視窗,並將組建設定從 [偵錯] 變更為 [發行]。 在 [建置] 下拉式功能表中,選取 [重建方案],並等候專案重建。 您應會收到 [全部重建成功] 輸出。 如果沒有,請參閱底下的疑難排解區段。
(選用):在 PowerShell 中開啟專案目錄,檢查您的應用程式二進位檔現在已針對 Arm64 架構建置 (在 Visual Studio 中以滑鼠右鍵按兩下您的應用程式專案 方案總管,然後選取 [在終端機中開啟]。 變更目錄,以便選取專案的新 bin\ARM64\Release
目錄。 輸入命令:dumpbin .\<appname>.exe
(將 <appname>
取代為您的應用程式名稱)。 然後輸入命令:dumpbin /headers .\<appname>.exe
。 在終端機的輸出結果中向上捲動以尋找 FILE HEADER VALUES
區段,並確認第一行為 AA64 machine (ARM64)
。
將您的已更新應用程式發佈在 Microsoft Store 中
只要遵循上述設定步驟建置 Arm64 版本的應用程式,就可以瀏覽合作夥伴中心儀表板,並將新建的 ARM64 二進位檔新增至提交,以更新 Microsoft Store 中的現有應用程式套件。 (您也可以選擇移除先前的 ARM32 二進位檔)。
(選用) 移除先前的 Arm32 二進位檔。 如需選項的詳細資訊,請參閱在 Microsoft Store 中發布您的應用程式。
疑難排解
如果您在將 Arm32 應用程式移植到 Arm64 時遇到問題,以下提供一些常見的解決方案。
未針對 ARM64 編譯的相依性會阻擋您成功建置
如果您因為相依性、內部、第三方或開放原始碼程式庫而無法建置,您必須尋找方法來更新該相依性來支援 ARM64 架構或移除它。
針對內部相依性,建議您重建 ARM64 支援的相依性。
針對第三方相依性,我們建議提出要求維護者使用 ARM64 支援重建。
針對開放原始碼相依性,我們建議先檢查 vcpkg,以查看包含 ARM64 支援的較新版本是否存在相依性,讓您可以更新為該相依性。 如果沒有更新,請考慮自行新增 ARM64 支援至套件。 許多開放原始碼維護人員都受到此付出的幫助。
最後一個選擇是移除和/或取代應用程式專案的相依性。
需要協助嗎? 利用我們的 App 保證服務
深入了解 App 保證相容性協助,以協助將 Windows 應用程式或驅動程式移植到 Arm64。 若要向 App 保證註冊並連線,請瀏覽 aka.ms/AppAssureRequest 或傳送電子郵件至 achelp@microsoft.com,以提交您的 Windows on Arm 相容性支援要求。