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)
  • Electron
  • Chromium Embedded Framework (CEF)
  • Chromium

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
  • Platform-independent JavaScript or TypeScript modules like MobX and dragula work out of the box.
  • 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 #else of #ifdef {PLATFORM}.

Set compilation target and perform a build

Set the compilation target to Arm64 and perform a build.

Test your build

You should always check your compiled application on a physical device. You can easily fix many layout and JavaScript bugs when you see the application running on a device.

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:

  1. Go to Windows Update > For Developer.
  2. Activate Developer Mode.
  3. Activate Device Discovery.
  4. 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:

  1. 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.
  2. Create an installer with NSIS 3.04 or newer, or other Windows on Arm compatible installation programs.
Previous Next