November 15, 2018 1:59 pm

Official support for Windows 10 on ARM development

By / Senior Program Manager, Windows Kernel Team

Today is an exciting day for Windows 10 on ARM. With the official release of Visual Studio 15.9, developers now have the officially supported SDK and tools for creating 64-bit ARM (ARM64) apps. In addition, the Microsoft Store is now officially accepting submissions for apps built for the ARM64 architecture.

This news comes at a great time, as this holiday season, our partners Lenovo and Samsung are offering new Windows 10 on ARM devices featuring the Qualcomm Snapdragon 850 processor. These second-generation ARM64 devices provide even more computing power for developers to tap into while continuing to deliver the beyond-all-day battery life customers expect from Windows 10 on ARM. Like the first-generation ARM64 devices, they are also thin, light, fast, and designed with instant-on 4G LTE connectivity in mind, while able to run the wide ecosystem of Windows applications thanks to an x86 emulation layer.

Developers can use Visual Studio 15.9 today to recompile apps – both UWP and C++ Win32 – to run natively on Windows 10 on ARM devices. Running natively allows applications to take full advantage of the processing power and capabilities of Windows 10 on ARM devices, resulting in the best possible experience for users.

Instructions

Back in May, we documented a number of steps needed in order to build as ARM64 using early preview tools. With official support in Visual Studio, that’s much easier.

To start, update to Visual Studio 15.9. If you are going to build ARM64 C++ Win32 apps, ensure you have installed the individual component “Visual C++ compilers and libraries for ARM64” as shown below:

To start, update to Visual Studio 15.9. If you are going to build ARM64 C++ Win32 apps, ensure you have installed the individual component “Visual C++ compilers and libraries for ARM64.

After updating, for new UWP projects, you will see ARM64 as an available build configuration.

After updating, for new UWP projects, you will see ARM64 as an available build configuration.

For existing projects, or for C++ Win32 projects, add an ARM64 configuration to your project:

  1. Right click on your Solution and select Properties, then navigate to Configuration Properties and select “Configuration Manager.”
  2. Under “Active solution platform:” select “<New…>” and call it ARM64. Copy settings from “ARM” or “x64” and check to create new project platforms.

Hit build, and you should have ARM64 binaries ready to run.

To debug your app, you can use remote debugging, which is fully supported on ARM64. The download and instructions can be found at Remote Debugging on docs.microsoft.com. You can also create a package for sideloading or directly copy binaries over to a Windows 10 on ARM device to run your app.

To deliver your app to customers, the Store is now accepting ARM64 UWP apps, both C++ and .NET Native. You can also use the Desktop Bridge (instructions on docs.microsoft.com) to wrap ARM64 binaries into a package that can be submitted to the Store. And as always, you can also host dedicated ARM64 versions of your Win32 apps on your website or integrate ARM64 into existing multi-architecture installers.

Conclusion

With new Windows 10 on ARM devices sporting more powerful processors, the ARM64 platform continues to mature and improve. The release of Visual Studio 15.9 continues that evolution, and we can’t wait to see what amazing experiences developers can produce using these tools.

For answers to any questions or if you have feedback to share, head to our Windows 10 on ARM development page at http://aka.ms/Win10onARM or leave comments below.

Join the conversation

  1. Where should we ask to get at least the C++ Build Tools compiled for ARM64, so we get native dev environment?

  2. The instructions for existing UWP apps are incomplete. Once followed the steps above you need to manually edit the project file and add win10-arm64-aot into the RuntimeIdentifiers section. Once you have done this restore NuGet packages and build and it will build fine.

  3. Where should we report issues for Windows SDK components that do not support the ARM64 target? One notable example is Microsoft.Midi.GmDls

  4. I can not build package with Microsoft Advertising for ARM64. Because of this I can not submit an update to the store for ARM64. When can we expect a fix. Thanks.

  5. Compiling C# WPF apps as native ARM64 apps is still not supported right? Can we expect support for compiling them anytime soon?

  6. Call them +1-833-272_O777 support
    Where should we ask to get at least the C++ Build Tools compiled for ARM64, so we get native dev environment?

  7. I get that full VS is just too complex for native ARM64, but what about VSCode? Come on Microsoft, if you want developers to code for this machine, then they also need to do a little bit of coding on these machines. Please do a native arm64 compilation of VSCode.

  8. What am I missing?

    UWP .NET

    “Please build your project specifically for one of the following platforms: x86, x64, ARM”