Arm64 Visual Studio

Mark Downie

We are excited to announce that the release of Visual Studio 2022 17.3 Preview 2 is now available as a native Arm64 application on Windows 11! This will be the first version of Visual Studio that will natively support building and debugging Arm64 apps on Arm-based processors.

Our key goal with this preview is to introduce and stabilize the most popular Workloads used by developers who are building apps that run on Arm64, and to gather feedback from the community to help us prioritize additional experiences and Workloads as we work toward General Availability (GA) later this year.

Bringing Visual Studio to Windows 11 on Arm64 today!

During the Microsoft Build 2022 conference the Windows team announced a new Arm64 desktop device focused on developers.  We’re thrilled to join our Windows, .NET, and C++ partners in building a vibrant Arm64 developer toolchain. Today we deliver the latest version of Visual Studio that significantly reduces the dependence on x64 emulation. While the capabilities of the x64 emulator have expanded, we know that the very best Arm developer experiences will be supported by tools that run natively on Arm64.

Prioritizing the most important Workloads

Arm64 development is a long-term investment, and we have started this journey by focusing on the developer workloads needed to make Arm64 developers productive on Windows 11 Arm64. The first preview for Arm64 will launch today with the following Workloads enabled:

  • Desktop development with C++ (for MSBuild-based projects)
  • .NET desktop development (WinForms, WPF) using both .NET Framework, and modern .NET.
  • NET and Web development

These Workloads will GA at the end of this calendar year, and we will be soliciting feedback from the developer community to help us prioritize even more experiences. Our overarching goal is to prioritize tools and features to run natively where possible and to use emulation only where necessary.

For managed developers

.NET 6 has had native support for Arm64 from day one, and this release extends native Arm64 support for the .NET Framework in the form of .NET Framework 4.8.1 runtime and SDK. You can now build managed desktop applications (Windows Forms and WPF) using both .NET 6+ and .NET Framework 4.8.1.

.NET Framework 4.8.1 is included in the next major update for Windows 11 shipping later this year and will be available for previous operating systems in the future.

While this first preview will include Windows Forms, WPF and Web apps, support for Windows App SDK, .NET MAUI, and Universal Windows Platform (UWP) will be available in subsequent previews.

When you start with the Arm64 version of Visual Studio before rebuilding your application make sure you update references to NuGet packages to their latest versions supporting Arm64. Most NuGet packages should just work with no additional changes needed (our analysis shows 98% of the top 1000 packages already work on Arm64).

For native developers

The MSVC toolset, including the C++ compiler, libraries and runtime, has supported targeting Arm64 for a while now, and we’re constantly improving the quality of the Arm generated code. When running directly on Arm64 devices however, the compilers would run emulated. With today’s release, you get access to the new native Arm64 MSVC compiler toolset, including its C++ Code Analysis capabilities, while still targeting all platforms currently supported by MSVC:

Host architecture (the platform the compiler is running on) Target architecture (the platform the compiler is generating binaries for) Installation path
ARM64 ARM64, including ARM64EC* <VS Install>\ VC\Tools\MSVC\<version>\bin\HostARM64\ARM64
ARM64 x86 <VS Install>\ VC\Tools\MSVC\<version>\bin\HostARM64\x86
ARM64 x64

<VS Install>\ VC\Tools\MSVC\<version>\bin\HostARM64\x64

* Arm64EC allows you to build Arm64 native apps incrementally, by taking advantage of the native speed of ARM where available, and allowing x64 binaries to interop seamlessly in the same process (in emulation mode) where they’re not yet available on ARM.

If you are just getting started with Arm64 or considering it, rest assured that many of the C++ libraries you’re used to are already available on Arm64. Vcpkg also runs natively on Arm64, and while some dependent 3rd party tools may still run emulated, you are able to successfully build and consume 600+ C++ libraries directly in your native ARM64 build environment. 

And if you are a Visual Studio C++ developer on a Windows 11 Arm64 device, we invite you to check out the latest Visual Studio preview. By installing the C++ Desktop Workload, you can load any desktop C++ projects and solutions using MSBuild to try any of the editing, building, and debugging capabilities you are already familiar with in Visual Studio. Additional C++ Visual Studio workloads (e.g., gaming) and build systems (e.g., CMake) will be supported in subsequent updates.

Installing Arm64 Visual Studio

There is a single installer for both x64 and Arm64 Visual Studio. The 17.3 preview 2 installer detects the system architecture and then downloads and installs the Arm64 version of Visual Studio on your Arm64 device (support is for Windows 11).

Important


Please note, for Windows 11 Arm64, you must uninstall all previous versions of Visual Studio before installing the Visual Studio 2022 17.3 preview version.

Extension authors

Our official support for extension authors is coming soon! While native extensions will need to be rebuilt to support Arm64, we anticipate minimal updates required for .NET extensions compiled to AnyCPU.

We will be sharing more info on how to migrate your extensions to Arm64 in a future blog post, so stay tuned!

Get started with Arm64 Visual Studio preview today!

We have been building momentum to support our Arm64 developer community and it includes improvements across hardware, toolchains, and of course, Visual Studio, our flagship developer environment. For us, this is just the beginning of the journey; there will be more experiences coming during this preview period.

Today we are inviting Arm64 developers building Windows Forms, WPF, and native apps to check out our latest preview! To get going with the native Arm64 Visual Studio experience you will need to do the following:

  • Ensure you have an Arm64 device with Windows 11.
  • Uninstall any prior versions of Visual Studio 2022 from your Arm64 device.
  • Download and install Visual Studio 2022 17.3 preview 2.

We’d love to hear from you about the experiences we are bringing online. Let us know what you like and whether you have suggestions for making Visual Studio even better on Arm64. You can share feedback with us via Developer Community: report any bugs or issues via report a problem and share your suggestions for prioritizing more Workloads.

33 comments

Discussion is closed. Login to edit/delete existing comments.


Newest
Newest
Popular
Oldest
  • Taha Yasin Kucuk 0

    Will Xamarin Native be part of the ARM supported VS?

  • Alex Ivanoff 0

    Visual Studio 2022 17.3 is released. How do I install native ARM64 version of it?

  • Ganesh Jangir 0

    Performance on my M1 Mac in Parallels has improved drastically comparing to x86 arch.

    Waiting for Windows App SDK workload support now.

  • Ken Jones · Edited 1

    I’m attempting to build a legacy .NET Framework 4.8 Web Application and getting the following error:
    error MSB3082: Task failed because “aspnet_compiler.exe” was not found, or the .NET Framework v4.0 is not installed. Please install the .NET Framework v4.0.

    Is this scenario supported and if so, I’m wondering if someone can point me in the right direction to get it going? More details…
    Fresh Win11 ARM64 install.
    Fresh VS 2022 17.3 preview 5
    Web Application seems to run fine. I just can’t precompile the views.

    Some possible relevant portions of the .csproj file:

      
    <Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
      <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" />
    ...
      <Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
        <AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
      </Target>
    
    • Austen OttMicrosoft employee 0

      Could you please file this as a feedback ticket either through VS or on Developer Community?
      That will make it much easier to track and investigate this.

  • Martin Arendasy 0

    Excellent news!! – Which languages are supported using ARM64 VS??

  • Jens N 0

    Will Windows 10 get net481 with arm64 support? I am thinking about not just Surface Pro X which is probably already upgraded to Windows 11 in most cases, but Windows 10 Iot.

  • Daniel Shewa 0

    I am using MacBook M1 Max with Parallel. I just download Preview 2 and the performance is lot better than the emulated version. I had to go back to the 17.2 because the 17.3 Preview 2 does not have all the workload i need. So I have 2 questions.
    1) Are you planning to add more workload on GA Version. For example Azure, Database, SSIS, SSRS… (This are core tools for enterprise)
    2) I understand it is hard to get all the workload ready on first GA version – so if not ready can we run both the emulated and arm64 version side by side. If not then this is a non-starter for me.

    • Mark DownieMicrosoft employee Author 0

      Hey Daniel,

      1. Yes, we are planning to add more Workloads. The overarching goal is to add more Workloads over time so please continue to provide feedback, this help us create priority. Developer Community site is here https://developercommunity.visualstudio.com/home
      2. We do not support Arm64 VS side by side with x64 VS.

      Thanks

  • Emanuel Koseos 0

    Does this mean IIS can now execute on Windows 11 ARM64 – currently I am able to build some projects (.net 4.7.2 and .net 6 core) but no project can currently be executed with the exception of simple Blazor projects in visual studio 2022. Since I am on a mac m1 I have resorted to using Rider currently in native macos to build and run my .net projects – I’ve only ever used visual studio, but have been forced to move to another ide.

    I will test visual studio preview to see if it can now run .netcore projects (3.1, 6) and .netframework 4.7.2 projects.
    My project teams have switched to macbook m1’s unfortunately due to superior support for design envrionment; we have been trying to bring back intel but more than likely that won’t happen any time soon, since we have a mixed bag of platforms rather than just .NET.

  • Nori Sakai 0

    Hello,
    atls.lib for ARM64 is not installed. However, atls.lib for both x86 and x64 are installed. Is that your expected behavior?
    Regards,

    • Austen OttMicrosoft employee 1

      When installing have you selected the “C++ ATL for latest v143 build tools (ARM64)” component from the Individual Components tab?
      I believe that should ensure that the arm64 copy is included with your VS installation.

  • lee mabry 0

    HACKING ATTACKS ON MICROSOFT BY ALONZO HEARD STOLEN INFORMATION TRYING KILL PEOPLE FOR USING SOFTWARE OR ANY MICROSOFT PRODUCT AND SAY BOMB NEXT ALSO WHITE HOUSE

Feedback usabilla icon