-
Notifications
You must be signed in to change notification settings - Fork 4.1k
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
Enable running in ARM64-native mode on .NET Framework. #74285
Conversation
cc @jaredpar as we talked about this on Teams |
Do we have any data on what happens when this is run on a lower version of Windows? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Need to resolve:
- What happens on x86 architectures?
- What happens on older OS when this entry is added to the manifest.
|
The compiler runs on many different OS. Pretty much any OS still in support. |
@jaredpar I tested on Windows 10 and the entry is ignored there. |
@jasonmalinowski PTAL. This would be injected into pretty much any .NET Framework EXE in our repo which includes msbuild host and guessing other IDE items. This is safe as long as the EXE are ARM64 compatible (not relying on emulation to AMD64 to execute). That should be the case unless it is doing any PInvoke or arch specific interop code. I can vouch for the compiler exes but need IDE to take a look for theirs. |
@dotnet/roslyn-compiler PTAL |
@jaredpar I can't think of an obvious problem here. Going through various processes we ship:
If the following scenario is also legal I could imagine this might break:
If the build host and LSP server were running under x64 runtimes, then this might all work. But if the build host then now runs as native arm64, the lack of SDK for that platform might break it. The user of course should just install the arm64 SDK too. 😄 |
Tagging @dibarbet if he has any other ideas. |
@jaredpar pointed out I was forgetting this change only applies to .NET Framework, so my concern about say VS Code doesn't matter since that's all .NET Core and doesn't care. So we're probably fine. |
I see |
Fixes dotnet/runtime#104548.
This PR updates
app.manifest
to add the newly introducedsupportedArchitectures
element. This enables Roslyn to run in native ARM64 architecture when running on .NET Framework (for example in builds inside Visual Studio), and on Windows 11 24H2+.