installer icon indicating copy to clipboard operation
installer copied to clipboard

Why is the arm64 sdk found on x64 machines?

Open Varorbc opened this issue 1 year ago • 8 comments

Description

Why is the arm64 sdk found on x64 machines?

Reproduction Steps

dotnet --info

Expected behavior

arm64 should not be found

Actual behavior

.NET SDK:
 Version:   7.0.100-rc.2.22426.5
 Commit:    2d1a4de6b2

运行时环境:
 OS Name:     Windows
 OS Version:  10.0.22621
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\7.0.100-rc.2.22426.5\

Host:
  Version:      7.0.0-rc.1.22422.12
  Architecture: x64
  Commit:       ef077d0b58

.NET SDKs installed:
  3.1.420 [C:\Program Files\dotnet\sdk]
  5.0.408 [C:\Program Files\dotnet\sdk]
  6.0.400 [C:\Program Files\dotnet\sdk]
  7.0.100-rc.2.22426.5 [C:\Program Files\dotnet\sdk]
  8.0.100-alpha.1.22428.3 [C:\Program Files\dotnet\sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 3.1.26 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 5.0.17 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 6.0.8 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 7.0.0-rc.2.22424.4 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 3.1.26 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 5.0.17 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 6.0.8 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 7.0.0-rc.1.22422.12 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.WindowsDesktop.App 3.1.26 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
  Microsoft.WindowsDesktop.App 5.0.17 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
  Microsoft.WindowsDesktop.App 6.0.8 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
  Microsoft.WindowsDesktop.App 7.0.0-rc.2.22424.8 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

Other architectures found:
  arm64 [C:\Program Files\dotnet]
    registered at [HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\arm64\InstallLocation]
  x86   [C:\Program Files (x86)\dotnet]
    registered at [HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\x86\InstallLocation]

Environment variables:
  Not set

global.json file:
  E:\Projects\HelloNet\global.json

Learn more:
  https://aka.ms/dotnet/info

Download .NET:
  https://aka.ms/dotnet/download

image

Regression?

No response

Known Workarounds

No response

Configuration

No response

Other information

No response

Varorbc avatar Aug 31 '22 01:08 Varorbc

I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label.

Tagging subscribers to this area: @vitek-karas, @agocke, @vsadov See info in area-owners.md if you want to be subscribed.

Issue Details

Description

Why is the arm64 sdk found on x64 machines?

Reproduction Steps

dotnet --info

Expected behavior

arm64 should not be found

Actual behavior

.NET SDK:
 Version:   7.0.100-rc.2.22426.5
 Commit:    2d1a4de6b2

运行时环境:
 OS Name:     Windows
 OS Version:  10.0.22621
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\7.0.100-rc.2.22426.5\

Host:
  Version:      7.0.0-rc.1.22422.12
  Architecture: x64
  Commit:       ef077d0b58

.NET SDKs installed:
  3.1.420 [C:\Program Files\dotnet\sdk]
  5.0.408 [C:\Program Files\dotnet\sdk]
  6.0.400 [C:\Program Files\dotnet\sdk]
  7.0.100-rc.2.22426.5 [C:\Program Files\dotnet\sdk]
  8.0.100-alpha.1.22428.3 [C:\Program Files\dotnet\sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 3.1.26 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 5.0.17 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 6.0.8 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 7.0.0-rc.2.22424.4 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 3.1.26 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 5.0.17 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 6.0.8 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 7.0.0-rc.1.22422.12 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.WindowsDesktop.App 3.1.26 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
  Microsoft.WindowsDesktop.App 5.0.17 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
  Microsoft.WindowsDesktop.App 6.0.8 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
  Microsoft.WindowsDesktop.App 7.0.0-rc.2.22424.8 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

Other architectures found:
  arm64 [C:\Program Files\dotnet]
    registered at [HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\arm64\InstallLocation]
  x86   [C:\Program Files (x86)\dotnet]
    registered at [HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\x86\InstallLocation]

Environment variables:
  Not set

global.json file:
  E:\Projects\HelloNet\global.json

Learn more:
  https://aka.ms/dotnet/info

Download .NET:
  https://aka.ms/dotnet/download

image

Regression?

No response

Known Workarounds

No response

Configuration

No response

Other information

No response

Author: Varorbc
Assignees: -
Labels:

area-Host, untriaged

Milestone: -

ghost avatar Aug 31 '22 04:08 ghost

Side note about the screenshot from registry. The install locations are actually only used from the 32-bit view of the registry. So on x64 OS you need to look at Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\dotnet\Setup\InstalledVersions.

@joeloff - this is done by the installer, did we try to fix this so that the installer doesn't write non-sensical info about other architectures? For example on my machine it shows the arm64 to be installed in x86 directory:

  arm64 [C:\Program Files (x86)\dotnet]
    registered at [HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\arm64\InstallLocation]

Overall this is just confusing - there's definitely non arm64 runtime available on the machine and trying to run arm64 app will fail. But I agree that dotnet --info looks confusing (and in this case it's that there's actually sort of wrong info in the registry).

@elinor-fung should we maybe change what dotnet --info prints out as the location of the registry key? Since now if I run x64 dotnet it prints out registered at [HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\arm64\InstallLocation] which is technically wrong, since it's actually in registered at [HKLM\SOFTWARE\WOW6432Node\dotnet\Setup\InstalledVersions\arm64\InstallLocation]

vitek-karas avatar Aug 31 '22 13:08 vitek-karas

@vitek-karas the path entry is definitely wrong.

joeloff avatar Aug 31 '22 16:08 joeloff

@joeloff do you want to move the bug to the right place then? Since it's really a setup issue, we should not be writing the path there.

vitek-karas avatar Aug 31 '22 16:08 vitek-karas

Yeah, move it to installer for now. I suspect though that this is coming from Arcade since there's some built-in templates/tasks that the runtime uses for generating its installers, but at least this way we'll track it and once we've triaged/assigned we can move it to Arcade if necessary.

joeloff avatar Aug 31 '22 16:08 joeloff

@vitek-karas @joeloff https://github.com/dotnet/runtime/pull/70403

Varorbc avatar Aug 31 '22 23:08 Varorbc

@Varorbc yes - that's what added that section to dotnet --info, but it's reading the info from registry, which is wrong in this case.

vitek-karas avatar Sep 01 '22 13:09 vitek-karas