Install location for x64 emulated on Arm64

We've moved the install location of the x64 version of the .NET SDK and runtime on Arm64 hardware.

Previously, the x64 and Arm64 versions installed to the same location, leading to a broken state. In addition, the PATH environment variable value was being set for both installations, so depending on install order, you might have an unexpected version of the dotnet command used by default.

Version introduced

.NET 6 RC 2

Previous behavior

In previous versions, both the Arm64 and x64 versions of .NET SDK and runtime installed to the same location on Arm64 hardware:

  • macOS: /usr/local/share/dotnet
  • Windows: %ProgramFiles%\dotnet

This worked if only one version was installed, but was completely broken if both were installed.

New behavior

In .NET 6, the x64 version of .NET installs to a subfolder named x64 on Arm64 hardware:

  • macOS: /usr/local/share/dotnet/x64
  • Windows: %ProgramFiles%\dotnet\x64

For more information, see Install location.

Change category

This change might affect source compatibility.

Reason for change

Without this change, the x64 and Arm64 versions of the .NET SDK and .NET runtime install to the same location on Arm64 hardware. This leads to being in a completely broken state. This change allows customers to develop for both x64 and Arm64 at the same time.

If you need to use the x64 version of the dotnet command, manually add that file path to the PATH environment variable.

Affected APIs

N/A

See also