Skip to content

For manifests with multiple non-portable InstallerUrl-s across multiple InstallerType-s but the same arch: If InstallerUrl 1 fails, fall back to InstallerUrl 2 #6028

@DandelionSprout

Description

@DandelionSprout

Relevant area(s)

WinGet CLI

Description of the new feature / enhancement

Currently, if a package has for example both an .msi and .exe installer for x64, Winget installs the .msi version; but if the .msi installation fails, Winget gives up without having tried the .exe installer first.

The idea involves having Winget automatically try out the various InstallerUrl-s by priority, one at a time, until at least one of them succeeds (or if they all fail).

Examples of affected packages in the Community Repo include, but are not limited to (But there may or may not also be false positives):

7zip.7zip
AgileBits.1Password
ArduinoSA.IDE.stable
Cloudflare.cloudflared
Foxit.PhantomPDF
GitHub.GitHubDesktop
Inkscape.Inkscape
Microsoft.RMSClient
Microsoft.Teams.Classic
OpenStreetMap.Josm
SlackTechnologies.Slack
VideoLAN.VLC
Voidtools.Everything
WiresharkFoundation.Wireshark
Zoom.ZoomRooms

Proposed technical implementation details

That installer outputs for eligible packages can become, for example, this:

PS C:\Users\A> winget install JohnMadden.aeiou
Found John Madden aeiou [JohnMadden.aeiou] Version 1.2010
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Downloading https://example.org/aeiou.msi
Successfully verified installer hash
Starting package install...
  ████████████████████████████▌   95%
Installer failed with exit code: 0x80070005 : Access is denied.
MSI installer failed; trying EXE installer
Downloading https://example.org/aeiou.exe
Successfully verified installer hash
Starting package install...
Successfully installed
PS C:\Users\A>

Metadata

Metadata

Assignees

No one assigned

    Labels

    Issue-FeatureThis is a feature request for the Windows Package Manager client.Needs-TriageIssue needs to be triaged

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions