You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I’m unable to get the Winget PowerShell modules to work on the ARM64 runner. I’ve opened an issue on the winget-cli repo: microsoft/winget-cli#5590. Has anyone else encountered this issue?
Thanks, @matthew-brett — your script has been a very helpful reference!
I just ran into this issue because I'm unable to install needed development tools for a dedicated CI pipeline as I am not able to use Winget And I'm currently looking for a solution to install the needed dev stuff.
I’m unable to get the Winget PowerShell modules to work on the ARM64 runner. I’ve opened an issue on the winget-cli repo: microsoft/winget-cli#5590. Has anyone else encountered this issue?
Thanks, @matthew-brett — your script has been a very helpful reference!
Since that winget pwsh module issue has been resolved, I think this may be a more reliable workaround to get winget on these arm images:
We don't plan to add winget to the windows-11-arm image at this time, so we'll be closing this as won't-fix. winget (App Installer) is a per-user, Store-delivered component that doesn't bootstrap reliably in the non-interactive CI context, which is the main reason we keep it off the hosted images rather than shipping a version that may be broken or only partially functional out of the box.
On the workaround side: the approach you're already using — pulling the winget release bundle directly from the winget-cli releases and installing the arm64 packages — is a good one, and on ARM64 it's currently the more dependable route.
The "official" alternative is Microsoft's Microsoft.WinGet.Client PowerShell module:
One caveat if you go this way: Repair-WinGetPackageManager has had ARM64 architecture-selection bugs where it installs the ARM (32-bit) VCLibs instead of ARM64 and fails (see winget-cli #5020 / #5482). Make sure you're on the latest module version, and given that history your direct-download script is the safer default for now.
Closing this out — happy to reopen the discussion if ecosystem support for winget in headless/ARM environments improves.
It would be nice if you would reconsider the status of this request. The Microsoft.WinGet.Client method often fails due to rate limiting. I assume this happens because multiple projects are doing this from github's runners. This causes a fair bit of disruption in our team.
We don't plan to add winget to the windows-11-arm image at this time, so we'll be closing this as won't-fix. winget (App Installer) is a per-user, Store-delivered component that doesn't bootstrap reliably in the non-interactive CI context, which is the main reason we keep it off the hosted images rather than shipping a version that may be broken or only partially functional out of the box.
Just to check I understand - the problem here is that the winget installation is unreliable on the non-interactive CI context, so you don't want to do it at image build time? But doesn't that throw the problem over to us - in that we face that unreliability every time we run our CI - rather than you having this problem when you build the images? I mean - isn't this exactly the kind of problem that the images should take on, rather than the image users?
Thanks all for the follow-ups asking us to reconsider — we did take another look, and wanted to explain the reasoning rather than just leave it closed.
runner-images only preinstalls software that is consistently reproducible and maintainable across image refreshes. On Windows ARM, winget installation/servicing — the App Installer dependency chain, update behavior, and ARM-specific edge cases — has not met the same stability bar we have on the mature x64 Windows image families yet. Since we can't guarantee consistent behavior for all workflows, this stays not planned for now.
To be clear, this is specific to the current ARM hosted image state, not a general rejection of winget. If the ARM support paths become fully reliable in CI (with repeatable provisioning and validation), we're open to revisiting it.
Activity
[-]Please install winget[/-][+][windows-11-arm] - Please install winget[/+]krishnakumar4a4 commentedon Jul 15, 2025
I’m unable to get the Winget PowerShell modules to work on the ARM64 runner. I’ve opened an issue on the winget-cli repo: microsoft/winget-cli#5590. Has anyone else encountered this issue?
Thanks, @matthew-brett — your script has been a very helpful reference!
duaneking commentedon Dec 5, 2025
I just ran into this issue because I'm unable to install needed development tools for a dedicated CI pipeline as I am not able to use Winget And I'm currently looking for a solution to install the needed dev stuff.
wmmc88 commentedon Dec 23, 2025
Since that winget pwsh module issue has been resolved, I think this may be a more reliable workaround to get winget on these arm images:
ci: Ensure winget is available on windows-11-arm
ci: Ensure winget is available on windows-11-arm
ci: ensure winget is available on windows-11-arm
ci: ensure winget is available on windows-11-arm
ci(windows): install extraction tools via direct downloads (#970)
the-phinet commentedon Jun 27, 2026
In order to get winget working properly for our project, this is what we had to do (adapted from the above comment):
v-davit-ioramashvili commentedon Aug 17, 2026
Hi @matthew-brett, thanks for the request.
We don't plan to add winget to the
windows-11-armimage at this time, so we'll be closing this as won't-fix. winget (App Installer) is a per-user, Store-delivered component that doesn't bootstrap reliably in the non-interactive CI context, which is the main reason we keep it off the hosted images rather than shipping a version that may be broken or only partially functional out of the box.On the workaround side: the approach you're already using — pulling the winget release bundle directly from the winget-cli releases and installing the arm64 packages — is a good one, and on ARM64 it's currently the more dependable route.
The "official" alternative is Microsoft's
Microsoft.WinGet.ClientPowerShell module:One caveat if you go this way:
Repair-WinGetPackageManagerhas had ARM64 architecture-selection bugs where it installs the ARM (32-bit) VCLibs instead of ARM64 and fails (see winget-cli #5020 / #5482). Make sure you're on the latest module version, and given that history your direct-download script is the safer default for now.Closing this out — happy to reopen the discussion if ecosystem support for winget in headless/ARM environments improves.
the-phinet commentedon Aug 17, 2026
It would be nice if you would reconsider the status of this request. The
Microsoft.WinGet.Clientmethod often fails due to rate limiting. I assume this happens because multiple projects are doing this from github's runners. This causes a fair bit of disruption in our team.matthew-brett commentedon Aug 17, 2026
Just to check I understand - the problem here is that the winget installation is unreliable on the non-interactive CI context, so you don't want to do it at image build time? But doesn't that throw the problem over to us - in that we face that unreliability every time we run our CI - rather than you having this problem when you build the images? I mean - isn't this exactly the kind of problem that the images should take on, rather than the image users?
v-davit-ioramashvili commentedon Aug 25, 2026
Thanks all for the follow-ups asking us to reconsider — we did take another look, and wanted to explain the reasoning rather than just leave it closed.
runner-images only preinstalls software that is consistently reproducible and maintainable across image refreshes. On Windows ARM, winget installation/servicing — the App Installer dependency chain, update behavior, and ARM-specific edge cases — has not met the same stability bar we have on the mature x64 Windows image families yet. Since we can't guarantee consistent behavior for all workflows, this stays not planned for now.
To be clear, this is specific to the current ARM hosted image state, not a general rejection of winget. If the ARM support paths become fully reliable in CI (with repeatable provisioning and validation), we're open to revisiting it.