基于 Arm 架构设备上的 Visual Studio

Visual Studio 2022 版本 17.4 现已作为本机 Arm64 应用程序在 Windows 11 上提供,可用于基于 Arm 的电脑。 它是 Visual Studio 的首个版本,原生支持在基于 Arm 的处理器上构建和调试 Arm64 应用程序。 Visual Studio 2022 版本 17.4 及更高版本消除了 对大多数开发人员工作负载的 x64 仿真的依赖。 本文介绍如何开始使用 Visual Studio for Arm64。

Visual Studio for Arm64 入门

若要开始使用本机 Arm64 Visual Studio 体验,请执行以下操作:

  • 确保 Windows 11 安装在 Arm64 设备上。
  • 从 Arm64 设备中卸载任何早期版本的 Visual Studio。
  • 下载并安装最新版本的 Visual Studio 2022

安装 Visual Studio for Arm64

Visual Studio x64 和 Visual Studio Arm64 体系结构都有一个安装程序。 Visual Studio 安装程序检测系统体系结构是否为 Arm64。 如果是,安装程序将下载并安装 Arm64 版本的 Visual Studio。 (仅支持 Windows 11。如果通过布局安装产品,则需要 显式配置布局以包括 Arm 二进制文件

注释

若要使用 Visual Studio for Arm64,必须先卸载所有早期版本的 Visual Studio(x64,x86),然后才能安装 Visual Studio 2022 17.4 或更高版本。

支持的作业负载

Visual Studio for Arm64 支持以下工作负载:

  • .NET 桌面开发
  • 使用 C++ 进行桌面开发
  • ASP.NET 和 Web 开发
  • Node.js 开发
  • Visual Studio 扩展开发
  • 使用 C++ 的游戏开发
  • 使用 Unity 进行游戏开发
  • Windows 应用程序开发
  • .NET 多平台应用 UI 开发(.NET MAUI)
  • 使用 C++ 进行 Linux 和嵌入式开发
  • 使用 SQL Server Data Tools 进行数据库开发

托管开发

在此版本中,可以生成面向 .NET 6 及更高版本和 .NET Framework 4.8.1 的桌面应用程序(Windows 窗体和 WPF)。 .NET Framework 4.8.1 包含在 Windows 11 中,可安装在某些版本的 Windows 10 上。

原生开发

使用 Visual Studio 2022 17.4 及更高版本时,您可以访问适用于 Arm64 的本机 Visual C++ 编译器工具集,其中包括 C++ 代码分析,同时仍然能够指定 Visual C++ 当前支持的所有平台。

主机体系结构(编译器正在运行的平台) 目标体系结构(编译器正在为其生成二进制文件的平台) 安装路径
Arm64 Arm64 <安装位置>\VC\Tools\MSVC\<version>\bin\HostARM64\ARM64
Arm64 X64 <安装路径>\VC\Tools\MSVC\<version>\bin\HostARM64\x64
Arm64 X86 <安装位置>\VC\Tools\MSVC\<version>\bin\HostARM64\x86

Arm64 上提供了许多C++库。 vcpkg 还以本机方式在 Arm64 上运行,尽管某些依赖的非Microsoft工具仍可能仍可模拟运行,但可以直接在本机 Arm64 生成环境中生成和使用超过 1,700 个C++库。

如果使用 C++ 工作负载安装 桌面开发 ,则可以使用 MSBuild 加载任何桌面C++项目和解决方案,然后使用 Visual Studio 中熟悉的编辑、生成和调试功能。

17.4 之前的 Visual Studio 版本

17.4 之前的 Visual Studio 2022 版本可以通过 x64 仿真在 Arm 驱动的设备上运行,但 Arm 不支持某些功能。 因此,不建议在使用基于 Arm 的处理器的设备上运行这些版本的 Visual Studio。 相反,我们建议远程定位 Arm 设备。

有关受支持的作系统、硬件、支持的语言和其他要求和指南,请参阅 Visual Studio 2022 系统要求

我们需要你的帮助!

让我们了解你喜欢的内容以及你是否有关于在 Arm64 上改进 Visual Studio 的建议。 可以通过 开发人员社区共享反馈:通过 报告问题来报告 任何 bug 或问题,并分享有关优先处理更多工作负载 的建议