基于 ARM 的 Windows

Windows 传统上在由 x86/x64 处理器提供支持的计算机上运行,但最近也运行在 Arm 处理器支持的设备上。

Arm 驱动的设备特别有趣,因为 Arm 体系结构的节能特性使这些设备能够在提供更长的电池使用时间的同时提供出色的性能。 芯片上的 Arm 系统 (SoC) 通常包括其他关键功能,例如强大的 CPU、GPU、Wi-Fi & 移动数据网络,以及用于加速 AI 工作负载的神经处理器单元 (NPU) 。

生成在 Arm 上运行的 Windows 应用

Windows 10使现有的未修改 x86 应用能够在 Arm 设备上运行。 Windows 11添加了在 Arm 设备上运行未修改的 x64 Windows 应用的功能! 这种在 Arm 设备上运行 x86 & x64 应用的功能使最终用户确信,即使在支持 Arm 的新设备上,大多数现有应用 & 工具也能正常运行。

为了获得最佳性能、响应能力和电池使用时间,用户需要并需要 Arm 本机 Windows 应用,这意味着开发人员需要生成或移植 Arm 本机 Windows 应用。

Arm 开发人员工具

Microsoft 正在努力提供 Arm 本机开发人员工具集,其中包括 Arm 本机 Visual Studio 2022、VSCode、VC++ 工具链、经典.NET Framework、新式 .NET 和 Java。 Microsoft 还与多个第三方和开放源代码社区合作,将通用工具、运行时、框架和库移植到本机面向 Arm 上的 Windows。 请参阅 Build 2022 中的公告 ,了解此全面的工具、服务和设备套件,这些工具、服务和设备使开发人员能够像面向 x64 一样轻松地生成和移植本机面向 Arm 的应用。

Arm 开发人员服务

如今,许多开发人员还依赖于 虚拟机 和容器。 这就是为什么 Microsoft 的 Azure 团队最近宣布推出其新 Arm 虚拟机 服务的预览版,并很快将通过 Azure Kubernetes 服务预览 Arm 容器。

大多数开发人员还依赖于通过持续集成/持续部署 (CI/CD) (通常托管在 Azure DevOpsGitHub 等云服务中)的生成和测试自动化。 2022 年夏末,Microsoft 将开始移植 Azure DevOps 和 GitHub 共享的 CI/CD 自动化运行器/代理。 有关云托管的 Arm CI/CD 服务何时可用的详细信息即将发布。

Arm 开发人员设备

开发人员需要用于生成和测试 Arm 本机 Windows 应用的 Arm 设备。 Microsoft 合作伙伴已提供多个 Arm 支持的设备。 这些便携式设备,无论是笔记本电脑外形规格设备还是可转换平板电脑,都提供出色的性能和电池使用时间,并运行越来越多的 Arm 本机开发人员工具。

Windows 开发工具包 2023 (代码名称“Project Volterra”) 是最新的 Arm 设备,旨在支持 Windows 开发人员、AI 研究人员和希望将 AI 集成到其应用和体验中的开发人员。

Arm64EC - 在 Arm 上生成用于Windows 11的应用

Arm64EC 图形。

Arm64EC (“仿真兼容”) 使你能够以增量方式生成新应用或移植现有应用,以尽可能利用本机 Arm 性能,同时利用现有 x64 代码 & 库,直到完全迁移。 了解详细信息:

支持 Arm 上的现有 Windows 应用

应用类型图形。

Arm 上的 Windows 运行本机 Arm 应用以及许多未修改的 x86 & x64 应用,但为了获得最佳性能和电池使用时间,应用应尽可能构建为 Arm 原生应用。 Windows 应用可以使用许多不同的工具和技术生成,包括本机 C/C++ Win32 应用、经典.NET Framework WinForms/WPF 应用、新式 .NET 或 MAUI 应用,甚至是使用 Java、Python、node 等构建的应用。

查找用于 Arm 开发的工具

工具图形

Windows 提供各种工具和框架来支持 Arm 上的应用开发。

  • 新的 Arm 本机 Visual Studio 包括 Visual C++.NET & .NET FrameworkJava,使开发人员能够在基于 Arm 的设备上本机生成和调试 Arm 应用。 有关详细信息,请参阅 博客公告
  • Visual Studio Code原生支持 Arm,并且可以安装在 Arm 设备上VS Code C++ 扩展还提供 C++ IntelliSense 和生成支持,用于开发在 Arm64 设备上本机运行的 Windows 应用。
  • .NET 6 已支持 Arm,适用于本机 Arm 执行和 x64 仿真。 若要开发在 Arm64 设备上本机运行的 .NET 应用,建议安装新的 Arm 本机 Visual Studio 2022 预览版和最新的 .NET 7 预览版 Arm64 SDK。 在 .NET 博客中详细了解对 Arm 的 .NET 7 支持。
  • .NET 6 Arm64 SDK: 默认情况下,如果使用 dotnet run Arm64 SDK 的 .NET 6 应用,它将作为 Arm64 运行。 该工具 dotnet-runtimeinfo 可用于发现运行 .NET 的环境。 有关详细信息,请参阅 有关 Arm64 支持的 .NET 6 博客公告

注意

我们使用 术语 Arm 作为在 Arm64 上运行 Windows 桌面版的电脑的简写, (通常也称为 AArch64) 处理器。 此处使用 术语 Arm32 作为 32 位 Arm 体系结构的简写, (在其他文档) 中通常称为 Arm 。 由 Arm 提供支持的电脑提供出色的应用程序兼容性,并允许运行现有未修改的 x86 win32 应用程序。 Arm 应用无需任何仿真即可本机运行,而 x86 和 x64 应用在 Arm 设备上以仿真方式运行。

有关开发在 Arm 设备上运行的 Windows 应用的其他提示

  • 建议使用 MSIX 打包应用以供分发。 有关 MSIX 如何支持 Arm 和 Arm64 的详细信息,请参阅 应用包体系结构:Arm 和 Arm64

  • 并非所有 Visual Studio 项目都配置为在从 Arm 设备 (F5) 开始调试时在本地启动项目。 即使你的应用在本地运行,也可能需要配置 Visual Studio 以进行远程调试。 有关详细信息,请参阅远程调试

  • 若要在 Visual Studio 上查找并安装建议的包,请访问 Visual Studio 下载页

    • 对于 Visual Studio 远程工具 2022,滚动到“所有下载”部分下方,然后展开“Visual Studio 2022 工具”下拉菜单。 Visual Studio 远程工具 2022 将在此处列出。 请务必选中 “Arm64 ”单选按钮,然后 选中“下载”。
    • 对于Microsoft Visual C++可再发行组件,请滚动到“所有下载”部分下方,然后展开“其他工具和框架”下拉菜单。 Microsoft Visual C++ Visual Studio 2022 的可再发行组件将在此处列出。 请务必选中 “Arm64 ”单选按钮,然后 选中“下载”。
    • 如果使用较旧版本的 Visual Studio,请选择页面底部的“ 旧版下载” 链接,搜索与 Visual Studio 版本关联的下载。
  • 当用户从 Microsoft Store 将你的应用安装到 Arm 设备上时,Windows 11将自动选择可用的应用的最佳版本。 如果将应用的 x86、Arm32 和 Arm64 版本提交到 Microsoft Store,操作系统将自动安装应用的 Arm64 版本。 如果仅提交应用的 x86 和 Arm32 版本,操作系统将安装 Arm32 版本。 如果仅提交应用的 x86 版本,操作系统将安装该版本并在仿真下运行它。

  • 当选择应用体系结构时,请选择 32 位 x86 版本,以在 Arm 电脑上的 Windows 上运行应用的 32 位版本。 如果应用的 x64 Win32 版本不起作用,则大多数应用都将具有可用的 x86 版本。

  • 有关体系结构的详细信息,请参阅应用包体系结构

其他资源

外部资源