General porting instructions
This section reviews the general instructions for porting applications to Windows on Arm. It covers software requirements, changes in the application, and testing and deploying.
Select framework version and development environment
Frameworks that support applications for Windows on Arm include:
- Universal Windows Platform (UWP)
- Chromium Embedded Framework (CEF)
You can write code for Windows on Arm on:
- Visual Studio 2017 with the 15.9 update and Arm64 toolset
- Visual Studio 2019, which is ready for Windows on Arm by default
- Visual Studio Code
Check third-party dependencies
Check that all your third-party dependencies have a version that is compatible with Windows on Arm. If they do not, check whether they are open source and easily convertible. If they are not, you will need to either find alternative libraries or rewrite your code to avoid these dependencies.
Here are some things to keep in mind while you are checking your third-party dependencies:
- Check frameworks and SDKs. Some, like React Native and OpenJDK, are available for Windows on Arm.
- Check libraries. Some, like Boost and Scintilla, are available for Windows on Arm.
- If you are using C/C++ libraries that have Intel Intrinsics you need to do one of the following:
- Switch to a library without Intrinsics
- Switch to a library that also supports Arm Intrinsics
- Write a new library
- Check the tools that you use for building and testing. Python, Yarn, and PuTTY support Windows on Arm.
Check internal dependencies
Before you can build your code for Windows on Arm, you need to ensure that platform-specific code is handled correctly. Most bugs occur in the
Set compilation target and perform a build
Set the compilation target to Arm64 and perform a build.
Test your build
If you need to debug in Visual Studio 2017 or 2019, you need to use remote debugging. To set it up, you need to configure the test device to accept debugging:
- Go to Windows Update > For Developer.
- Activate Developer Mode.
- Activate Device Discovery.
- Pair your test device with your development machine.
Set up continuous integration
Add a Windows on Arm target to your continuous integration system.
Deploy your application
You can deploy the updated application in two ways:
- Upload to the Windows Store. The target must be a minimum Windows 10 version 1809 (10.0 build 17763). Older versions generate the error Package is invalid.
- Create an installer with NSIS 3.04 or newer, or other Windows on Arm compatible installation programs.