Runtime: Support Windows ARM64

Created on 19 May 2020  路  35Comments  路  Source: dotnet/runtime

Support Windows ARM64

We are in the process of adding support for Windows ARM64 as part of the .NET 5.0 project. As a result, you will be able to run Windows Forms, WPF and ASP.NET Core apps on Windows ARM64 devices, such as the Surface Pro X.

We intend to support the same .NET capabilities on ARM64 as on x64. Related: https://github.com/dotnet/runtime/issues/35853

This project follows a similar effort to add Console and ASP.NET Core support for Linux ARM64.

The .NET 5.0 Preview 4 SDK supports building and running ASP.NET Core and Console apps.

You can install master branch builds if you would like want to test Windows Forms on ARM64. master branch builds do not yet include WPF support for ARM64.

Remaining .NET 5 Work

Post .NET 5 Work

  • [ ] Produce and publish Windows Desktop Runtime Pack for ARM64

    • [x] Add Windows Forms to the Windows Desktop Runtime Pack

    • [ ] Add WPF to the Windows Desktop Runtime Pack

  • [ ] Add Windows Desktop framework to the SDK

    • [x] Add Windows Forms to the Windows Desktop framework in the SDK

    • [ ] Add WPF to the Windows Desktop framework in the SDK

    • [x] Crossgen Windows Desktop Pack for ARM64

  • [ ] Test PowerShell on Windows ARM64 (PowerShell team will do this, but it is an important signoff criteria)

Timeline

The following timeline is for .NET 5.0 and Windows ARM64:

  • .NET 5.0 Preview 4 -- Ship the .NET SDK, without Windows Desktop
  • .NET 5.0 Preview 5 -- Add Windows Desktop to SDK, with Windows Forms
  • .NET 5.0 Preview 6 -- Add ARM64 MSI installer for .NET Runtime
  • .NET 5.0 RC2 -- Add ARM64 MSI installer for SDK
  • TBD -- Add WPF to Windows Desktop

After this project is complete, the Windows ARM64 SDK will have functional parity with x64.

Examples

The following image demonstrate the Conway's Game of life VB sample running on Windows ARM64.

2020-05-15

The following demonstrates displaying version information in a Windows Forms app on ARM64.

image

The following image demonstrates 32-bit x86 Windows PowerShell 5.1 running emulated (on .NET Framework 4.8), and 64-bit ARM64 PowerShell 7.1 running natively (on .NET 5.0) on Windows ARM64.

2020-05-15 (5)

See PowerShell/PowerShell to download the Windows ARM64 version. You can also install the PowerShell .NET tool on Windows ARM64.

See versioninfo for APIs that you can use to get version and architecture information.

Epic arch-arm64 area-Meta blocking-release

Most helpful comment

We pushed some fixes to the website yesterday and now we have the ARM64 entry for Windows runtime as well.

All 35 comments

I couldn't figure out the best area label to add to this issue. Please help me learn by adding exactly one area label.

Hi!

I would like to request Windows IoT Enterprise to gain .NET5 support on Windows ARM64 (including Windows Forms, WPF, ..).

Thanks Joel for referring to this issue :) I didn't know this existed.

@richlander ; It is not clear when to expect ASP.NET Core support on Windows ARM64.
The description says "The .NET 5.0 Preview 4 SDK supports building and running ASP.NET Core and Console apps." however .NET 5 preview 6 as well as 7 renders the following message upon building an ASP.NET Core application:
C:\Program Files\dotnet\sdk\5.0.100-preview.6.20318.15\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(376,5): error NETSDK1082: There was no runtime pack for Microsoft.AspNetCore.App available for the specified RuntimeIdentifier 'win-arm64'.

https://github.com/dotnet/runtime/issues/36699 seems to be in line with what I am expecting but it would be nice to know which preview it is scheduled for! Thanks :)

Closing as we have completed this for 5.0.

@richlander anything left here - can we close it now?

There are still no MSI installers available for Arm64. Is there a separate tracking issue for those? What is the plan to deliver the installers? Thanks!

@dsplaisted @dagood can one of you answer that question?

There is dotnet/installer#7985 but it refers back to this one. Circular dependency 馃槄

As written, this issue can't be closed yet. It's an epic that depends on https://github.com/dotnet/installer/issues/7985.
Thanks for pointing this out, @Alovchin91.

It's odd that the timeline contains ".NET 5.0 Preview 6 -- Add ARM64 MSI installers", but the "remaining work" section doesn't mention it. My assumption is this epic hasn't quite been kept up to date.

/cc @NikolaMilosavljevic

Sounds good, glad I poked the issue then 馃槃

Just one question @dagood who is the primary person responsible for driving dotnet/installer#7985 to resolution? Just so it doesn't get lost between teams, etc.

Just one question @dagood who is the primary person responsible for driving dotnet/installer#7985 to resolution?

@joeloff is currently assigned and there's active conversation there--I think that's accurate. 馃檪

@danmosemsft @dagood @richlander Could someone please update and clarify the original post in this thread? As far as I understand, the plan has changed and there will be no Windows Desktop support for Arm64 in .NET 5?

Please do NOT remove stuff that worked in previous previews, i. e the ability to build self contained apps for winforms for arm64 on an x64 development machine just because installers for runtime/sdk might not be available for arm64.

Looks like we have an ARM64 runtime installer now with .NET 5 Preview 8

Looking forward to WPF support :)

Looks like we have an ARM64 runtime installer now with .NET 5 Preview 8

@Gerdya Where do you see it? It's not listed on the official website.

@JeffUnderhill We are talking about Windows ARM64 installers, right? 馃槉

I might be missing something, but I can't find them on .NET 5.0 Preview 8 download page:

image

The release notes look inconsistent: https://github.com/dotnet/core/blob/d594843acebe3e289e0ed9205dc076b8052f2ce0/release-notes/5.0/preview/5.0.0-preview.8.md#downloads

image

IIRC the mechanisms for these tables are different and the diff is likely not intentional, but it's definitely confusing.

@rbhanda @leecow @mairaw ideas?

@NikolaMilosavljevic who helped add these entries for release notes

@NikolaMilosavljevic who helped add these entries for release notes

I'm not sure how table is formatted - I've only provided the link to arm64 installer and asked for it to be added to release notes.

@dagood is the inconsistency with formatting or content?

@NikolaMilosavljevic It looks like the release notes page is missing ARM64 binaries link, while the official download page (https://dotnet.microsoft.com/download/dotnet/5.0) is missing ARM64 runtime installer link.

@NikolaMilosavljevic It looks like the release notes page is missing ARM64 binaries link, while the official download page (https://dotnet.microsoft.com/download/dotnet/5.0) is missing ARM64 runtime installer link.

@rbhanda can these issues be fixed quickly?

@rbhanda just pushed an update to the https://dotnet.microsoft.com/download/dotnet/5.0 but I'm not sure if the issue was resolved or not.

@mairaw No, the runtime installer link for Windows ARM64 is still absent.

@mairaw and I are looking into this. However the runtime installer is present in release notes

We pushed some fixes to the website yesterday and now we have the ARM64 entry for Windows runtime as well.

@tommcdon can you update with any remaining work needed for this to be complete in 5.0?

SDK is waiting on the ASP.NET changes - that PR is being reviewed. Once that's in we can start on the SDK installers.

@joeloff it seems to me there is no longer value in having this meta-issue open. It's purpose was for the community to see what was going on during the cycle. You have individual issues for the work you mention, right? If you confirm that we can close this.

@tommcdon can you update with any remaining work needed for this to be complete in 5.0?

Shall we close this in favor of dotnet/installer#8470?

Shall we close this in favor of dotnet/installer#8470?

Closing this issue as we have a pending PR that completes .NET 5.0 for Windows ARM64 support.

Is there a tracking issue for WPF on Arm64 and adding back the Desktop Pack support? Would be nice to have links in the original post.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

jzabroski picture jzabroski  路  3Comments

jamesqo picture jamesqo  路  3Comments

v0l picture v0l  路  3Comments

yahorsi picture yahorsi  路  3Comments

GitAntoinee picture GitAntoinee  路  3Comments