-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
[Windows ARM] Building libraries from Visual Studio results in an x64 compiler being used #104548
Comments
Tagging subscribers to this area: @dotnet/runtime-infrastructure |
We do this to allows us to get faster end-to-end validation of new C# features and gives us agility with working around bugs. You can see number of instances in the history of the versions file where we took advantage of this - #65317 has a bunch of examples. |
Does it reproduce when building a regular project with the built-in C# compiler? It would be weird if it did not: one of the ways for an executable to run on .NET Framework on native ARM64 architecture is to target .NET Framework 4.8.1, and the built-in One other way to enable it would be with a special manifest element, and I have opened dotnet/roslyn#74285 to add it. As a workaround @eiriktsarpalis you can force |
Nope, standard projects using the inbox compiler run as arm64 processes. |
Very cool, this solved my problem. For anyone interested you can create the following DWORD values:
set to the hex value of |
Leaving open until the changes are absorbed in runtime and we revert #104812 |
Even though my VS process is arm64:
Building libraries projects results in an x64 compiler process being used:
Digging deeper, it appears this is issue is specific to dotnet/runtime infrastructure which by default uses an OOB compiler that doesn't support arm64:
I should stress that this has major impact on build performance. For reference, building
System.Text.Json.sln
from the CLI using the arm64 sdk takes 32 seconds whereas building the same solution from VS takes 8 minutes.The text was updated successfully, but these errors were encountered: