winget-cli: Using command `winget upgrade --all` does not update some software and does not say why.

Brief description of your issue

Using command winget upgrade --all does not update some software and does not say why.

I can see in the log the real reason :

Installer [X64,wix,Machine,] not applicable: Installed package type ‘exe’ is not compatible with installer type wix, or with accepted type(s) wix

Steps to reproduce

winget upgrade --all
Nom                    ID                       Version Disponible Source
-------------------------------------------------------------------------
MiKTeX                 ChristianSchenk.MiKTeX   22.3    22.7       winget
Password Safe (64-bit) RonyShapiro.PasswordSafe 3.58.0  3.59.0     winget
2 des mises à niveau sont disponibles.

Expected behavior

It must update all these softwares or say why it can’t. I think wget should provide a command to reinstall the software in this case.

Actual behavior

Somme’s software are skipped without any visible explanation.

Environment

Windows: Windows.Desktop v10.0.19044.1889
Architecture du système: X64
Package: Microsoft.DesktopAppInstaller v1.18.2091.

About this issue

  • Original URL
  • State: open
  • Created 2 years ago
  • Reactions: 5
  • Comments: 25 (12 by maintainers)

Most upvoted comments

Many of these packages support “side-by-side” installation. If you run winget list you are likely to see more than one version present. We’re working on enhancements to the upgrade flow to check and see if the latest version is already installed on the system to avoid displaying them again.

For me the same thing happens for these packages:

winget upgrade
Name                                             Id                                Version          Available    Source
-----------------------------------------------------------------------------------------------------------------------
Microsoft Windows Desktop Runtime - 5.0.17 (x86) Microsoft.DotNet.DesktopRuntime.6 < 6.0.5          6.0.8        winget
Microsoft Windows Desktop Runtime - 3.1.28 (x86) Microsoft.DotNet.DesktopRuntime.6 < 6.0.5          6.0.8        winget
Windows Software Development Kit - Windows 10.0… Microsoft.WindowsSDK              < 10.0.22000.832 10.0.22621.1 winget
Microsoft .NET SDK 5.0.408 (x64)                 Microsoft.DotNet.SDK.6            < 6.0.105        6.0.400      winget
Windows Software Development Kit - Windows 10.0… Microsoft.WindowsSDK              < 10.0.22000.832 10.0.22621.1 winget
Microsoft .NET SDK 6.0.108 (x64)                 Microsoft.DotNet.SDK.6            6.0.108          6.0.400      winget
MIDI-OX                                          JamieOConnell.MIDI-OX             7.02.372         7.02.373     winget
Microsoft .NET SDK 6.0.303 (x64)                 Microsoft.DotNet.SDK.6            6.0.303          6.0.400      winget
Microsoft Windows Desktop Runtime - 3.1.23 (x64) Microsoft.DotNet.DesktopRuntime.6 < 6.0.5          6.0.8        winget
Windows Software Development Kit - Windows 10.0… Microsoft.WindowsSDK              10.0.22000.832   10.0.22621.1 winget
Microsoft .NET SDK 6.0.203 (x64)                 Microsoft.DotNet.SDK.6            6.0.203          6.0.400      winget
11 upgrades available.
4 packages have version numbers that cannot be determined. Using "--include-unknown" may show more results.

They just show up again after being upgraded.

I’m on windows 11 x64

It looks like a vanity URL so it might be any number of things that changed.

It looks like a typo in the manifest, where 373 was used instead of 372. I’ve opened microsoft/winget-pkgs#78888 to fix the package, and also updated it to use the Marketing Version, with ARP Mapping.

Removing it from the registry worked. Thanks.

But I found that the files for the previous version were still present, so I had to delete the files manually as well.

Does winget uninstall BlenderFoundation.Blender --version 3.2.2 work? I’m wondering if their installer isn’t cleaning up the old entries. We may need to add “uninstallPrevious” to the manifest to get the desired behavior.

I guess the installer isn’t cleaning up the files or the entries in this case atleast…