将应用体系结构从 Arm32 更新到 Arm64
本指南将介绍使用 Visual Studio 添加必要的配置,将现有应用更改为更新的 64 位 Arm 体系结构,以支持 32 位 Arm 平台体系结构的建议步骤。 此更新将帮助你的应用在使用 64 位 Arm(ARM64/AArch64)处理器的最新 Windows 上运行。
本主题与没有 ARM64 目标的 UWP 应用相关。 旧的 UWP 项目模板生成了 ARM32(或 AArch32)目标,但不包括对 ARM64(AArch64)的支持。
若要查看应用的当前解决方案平台是否存在,请在 Visual Studio 中打开应用项目代码,并在标准工具栏上的“解决方案平台”下拉菜单中,选择 Configuration Manager... (在生成菜单中也可用),可在其中查看解决方案平台列表并确认是否存在 ARM64。
备注
在 Arm 处理器 上运行的 Windows 设备(例如,来自高通的 Snapdragon 处理器) 将不再支持 AArch32 (Arm32)。 此更改会影响当前面向 AArch32(Arm32)的通用 Windows 平台应用。 在 Windows 11 的未来版本中,将删除对 32 位 Arm 版本的应用程序的支持。 还将删除 ARM32 支持的系统二进制文件(存在于 sysarm32 文件夹中)。 经过此更改,对于少数受到影响的应用程序,其应用程序功能可能会有所不同,性能也可能有所不同。 因此,我们建议尽快将目标平台更新到 Arm 设备上的所有 Windows 上受支持的 AArch64(Arm64),以确保客户能够继续享受最佳体验。 按照本页上的指南将应用程序更新到 AArch64 (Arm64)。
若要将 ARM64 解决方案平台添加到现有应用项目代码,请执行以下操作:
- 在 Visual Studio 中打开解决方案(项目代码)(需要 Visual Studio 2017 版本 15.9 或更高版本)。
- 在“标准”工具栏上的“解决方案平台”下拉菜单中(或在“生成”菜单中),选择“配置管理器...”
- 打开“活动解决方案平台”下拉菜单,然后选择 <“新建...”>。
- 在“键入或选择新平台”下拉菜单中,选择 ARM64 并确保“复制设置”值设置为 已启用“创建新项目平台”复选框的 ARM ,然后选择“ 确定”。
将 Arm64 解决方案平台添加到现有项目或解决方案后,如果要确认应用的 Arm64 版本生成正确,请关闭“活动解决方案平台”窗口,并将生成设置从 “调试 ”更改为 “发布”。 在“生成”下拉菜单中,选择“重新生成解决方案”并等待项目重新生成。 应会收到“重新生成所有成功”输出。 如果没有,请参阅下面的故障排除部分。
(可选):通过在 PowerShell 中打开项目目录(右键单击 Visual Studio 中的应用项目解决方案资源管理器并选择“在终端中打开”,检查应用二进制文件现在是否为 Arm64 体系结构构建)。 更改目录,以便选择项目的新 bin\ARM64\Release
目录。 输入命令:dumpbin .\<appname>.exe
(将 <appname>
替换为应用的名称)。 然后输入命令: dumpbin /headers .\<appname>.exe
在终端的输出结果中向上滚动,找到FILE HEADER VALUES
该部分并确认第一行。AA64 machine (ARM64)
按照上述配置步骤生成应用的 Arm64 版本后,可以通过访问 合作伙伴中心仪表板 并将新生成的 ARM64 二进制文件添加到提交来更新 Microsoft Store 中的现有应用包。 (也可以删除以前的 ARM32 二进制文件)。
(可选)删除以前的 Arm32 二进制文件。 有关选项的详细信息,请参阅 在 Microsoft 应用商店中发布应用。
如果在将 Arm32 应用移植到 Arm64 时遇到问题,下面是一些常见的解决方案。
如果由于依赖项(无论是内部依赖项、第三方依赖项还是开源库依赖项)而无法生成,需要找到一种方法来更新该依赖项以使其支持 ARM64 体系结构,或将其移除。
对于内部依赖项,建议重新生成依赖项以支持 ARM64。
对于第 3 方依赖项,建议提交请求,让维护人员重新生成支持 ARM64 的依赖项。
对于开放源代码依赖项,建议首先检查 vcpkg,以查看是否存在包含 ARM64 支持的较新版本的依赖项,你可以更新到该依赖项。 如果不存在更新,请考虑自行向包添加 ARM64 支持。 许多开源维护者都会感谢这一贡献。
最后的选择是移除和/或替换应用项目的依赖项。
详细了解应用保证兼容性帮助 ,以帮助将 Windows 应用或驱动程序移植到 Arm64。 若要注册并连接到应用保证,请访问 aka.ms/AppAssureRequest 或发送电子邮件以 achelp@microsoft.com 提交对 Arm 兼容性支持上的 Windows 的请求。