-
Notifications
You must be signed in to change notification settings - Fork 1.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
Cannot enumerate VS workloads on ARM64 (exception in dotnet --info
)
#31552
Comments
@joeloff do we have to do VS probing differently on arm64? |
No, this is related to older VS versions not targeting the arm64 vc libraries, so it fails to instantiate the COM object. VS has fixed this, but on machines that run into this, you need to install the vcredist to work around the issue. |
Is there anything we can/should do in terms of error messages here to clue users into this? At minimum can we catch this failure mode and link to the vcredist or something? |
I suppose we could. The fix was made for 17.5 because the update in 17.4 was still low for arm64. We'd be special casing this exception/error code/platform and it will fail for any list command in every sdk where we enabled interaction with VS potentially, so you'd have to port the fix to 7.0.1xx and later. |
I dug up the original error I ran into. Same class ID, but different error message
|
Installing VS 17.5 fixed this entirely. |
Description
When I run
dotnet --info
on ARM64, I see an exception reported in the ".NET workloads installed:" section.Reproduction Steps
Invoke
dotnet --info
on an ARM64 machine. Appears to be new in 8.0-preview3.Expected behavior
No exception. Maybe no workload readout on ARM64 hardware if we don't expect that to work?
Actual behavior
Exception is reported in the ".NET workloads installed:" section of
dotnet --info
output.System.BadImageFormatException: Retrieving the COM class factory for component with CLSID {177F0C4A-1CD3-4DE7-A32C-71DBBB9FA36D} failed due to the following error: 800700c1 is not a valid Win32 application. (0x800700C1).
This CLSID appears to be related to the Visual Studio installer, and is probably being used to report some information about VS workloads installed on the machine.
(Full stack trace in issue description above.)
Regression?
As far as I can tell, this worked in 8.0-preview2 and before.
Known Workarounds
No response
Configuration
.NET 8.0 Preview 4
ARM64
Other information
No response
The text was updated successfully, but these errors were encountered: