microsoft / winget-cli

WinGet is the Windows Package Manager. This project includes a CLI (Command Line Interface), PowerShell modules, and a COM (Component Object Model) API (Application Programming Interface).
https://learn.microsoft.com/windows/package-manager/
MIT License
22.55k stars 1.4k forks source link

Enable Microsoft.WinGet.Client arm64 support #4392

Closed msftrubengu closed 2 months ago

msftrubengu commented 2 months ago

This PR enables arm64 for the Microsoft.WinGet.Client module.

There's an OS bug that causes an AV (see https://github.com/microsoft/winget-cli/pull/4251#issuecomment-1989102892) in arm64 devices that was fixed in a newer Windows build. The AV message is just shown for PowerShell Core. In Windows PowerShell no error message is displayed but it won't display progress either. Regardless, the winget install/uninstall operation still happens as the progress is shown after we asked winget to install the app. The configuration module doesn't get affected by the OS bug, so there's no need to disable progress.

To keep showing progress the module now looks at the OS version. If the processor architecture is arm64 and the OS version is lower than 10.0.26068.0 progress is disabled in the module.

I verified manually on arm64 builds with and without the fix.

Fixes #4169

Microsoft Reviewers: Open in CodeFlow
denelon commented 2 months ago

If this fixes:

The PR can close that issue.