Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support Windows ARM64 #36699

Closed
4 of 10 tasks
richlander opened this issue May 19, 2020 · 37 comments
Closed
4 of 10 tasks

Support Windows ARM64 #36699

richlander opened this issue May 19, 2020 · 37 comments
Assignees
Labels
arch-arm64 area-Meta blocking-release Epic Groups multiple user stories. Can be grouped under a theme.
Milestone

Comments

@richlander
Copy link
Member

richlander commented May 19, 2020

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: #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
    • Add Windows Forms to the Windows Desktop Runtime Pack
    • Add WPF to the Windows Desktop Runtime Pack
  • Add Windows Desktop framework to the SDK
    • Add Windows Forms to the Windows Desktop framework in the SDK
    • Add WPF to the Windows Desktop framework in the SDK
    • 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.

@Dotnet-GitSync-Bot
Copy link
Collaborator

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

@Dotnet-GitSync-Bot Dotnet-GitSync-Bot added the untriaged New issue has not been triaged by the area owner label May 19, 2020
@richlander richlander added this to the 5.0 milestone May 19, 2020
@richlander richlander changed the title Epic: Support Windows ARM64 Support Windows ARM64 May 19, 2020
@tommcdon tommcdon removed the untriaged New issue has not been triaged by the area owner label May 19, 2020
@richlander richlander added the Epic Groups multiple user stories. Can be grouped under a theme. label Jun 1, 2020
@JensNordenbro
Copy link

Hi!

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

@voronoipotato
Copy link

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

@JensNordenbro
Copy link

JensNordenbro commented Aug 17, 2020

@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'.

#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 :)

@danmoseley
Copy link
Member

Closing as we have completed this for 5.0.

@danmoseley
Copy link
Member

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

@Alovchin91
Copy link

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!

@danmoseley
Copy link
Member

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

@Alovchin91
Copy link

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

@dagood
Copy link
Member

dagood commented Aug 24, 2020

As written, this issue can't be closed yet. It's an epic that depends on dotnet/installer#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

@danmoseley
Copy link
Member

Sounds good, glad I poked the issue then 😄

@danmoseley
Copy link
Member

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.

@dagood
Copy link
Member

dagood commented Aug 24, 2020

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. 🙂

@Alovchin91
Copy link

@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?

@JensNordenbro
Copy link

JensNordenbro commented Aug 25, 2020

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.

@Gerdya
Copy link

Gerdya commented Aug 26, 2020

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

Looking forward to WPF support :)

@Alovchin91
Copy link

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.

@Alovchin91
Copy link

@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

@dagood
Copy link
Member

dagood commented Aug 26, 2020

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?

@rbhanda
Copy link
Contributor

rbhanda commented Aug 26, 2020

@NikolaMilosavljevic who helped add these entries for release notes

@NikolaMilosavljevic
Copy link
Member

@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?

@Alovchin91
Copy 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.

@NikolaMilosavljevic
Copy link
Member

@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?

@mairaw
Copy link
Contributor

mairaw commented Aug 26, 2020

@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.

@Alovchin91
Copy link

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

@rbhanda
Copy link
Contributor

rbhanda commented Aug 26, 2020

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

@mairaw
Copy link
Contributor

mairaw commented Aug 27, 2020

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

@ericstj
Copy link
Member

ericstj commented Sep 8, 2020

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

@joeloff
Copy link
Member

joeloff commented Sep 8, 2020

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

@danmoseley
Copy link
Member

@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
Copy link
Member

tommcdon commented Sep 10, 2020

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

@danmoseley
Copy link
Member

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

@tommcdon
Copy link
Member

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.

@Alovchin91
Copy link

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.

@dotnet dotnet locked as resolved and limited conversation to collaborators Dec 9, 2020
@fabiant3
Copy link
Member

fabiant3 commented Jan 22, 2021

dotnet/wpf#4048 is a recent pull request pointing at a few other ARM64 related issues. We are aiming to have WPF ARM64 support in the upcoming .NET6 Preview1.

@richlander
Copy link
Member Author

Here is a tracking issue: dotnet/installer#8905.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
arch-arm64 area-Meta blocking-release Epic Groups multiple user stories. Can be grouped under a theme.
Projects
None yet
Development

No branches or pull requests