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
23.1k stars 1.44k forks source link

Winget upgrade package, No applicable update found #1191

Closed kdpuvvadi closed 2 years ago

kdpuvvadi commented 3 years ago

Brief description of your issue

if i run winget upgraded packagename & update available, it should update the package but it shows No applicable update found even though it's showing the newer version available.

Steps to reproduce

winget upgrade list of the available updates winget upgrade --all or winget upgrade Python.Python.3

Expected behavior

It should update the actual selected package or all incase of --all

Actual behavior

throws No applicable update found and if i run winget install packagename then installs the update.

Environment

Windows 10 Enterprise 21H1 build 19043.1055 Experience Pack 120.2212.2020.0

[winget --info]
Windows Package Manager v1.0.11451
Windows: Windows.Desktop v10.0.19043.1055
Package: Microsoft.DesktopAppInstaller v1.11.11451.0
OfficialEsco commented 3 years ago

Hmmm, i can't replicate this..

PS C:\Users\Esco> winget install Python.Python.3 --version 3.9.4150.0
Found Python 3.9.4150.0 [Python.Python.3]
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://www.python.org/ftp/python/3.9.4/python-3.9.4-amd64.exe
  ██████████████████████████████  27.0 MB / 27.0 MB
Successfully verified installer hash
Starting package install...
Successfully installed
PS C:\Users\Esco> winget upgrade
Name     Id              Version    Available  Source
-----------------------------------------------------
Python 3 Python.Python.3 3.9.4150.0 3.9.5150.0 winget
PS C:\Users\Esco> winget upgrade --all
Found Python 3 [Python.Python.3]
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://www.python.org/ftp/python/3.9.5/python-3.9.5-amd64.exe
  ██████████████████████████████  27.0 MB / 27.0 MB
Successfully verified installer hash
Starting package install...
Successfully installed
kdpuvvadi commented 3 years ago

Here my output


❯ winget upgrade
Name                              Id                      Version      Available   Source
-----------------------------------------------------------------------------------------
Mozilla Firefox                   Mozilla.Firefox         89.0         89.0.1      winget
VLC media player                  VideoLAN.VLC            3.0.15       3.0.16      winget
Zoom                              Zoom.Zoom               5.6.5 (823)  5.6.1016    winget
VNCViewer                         RealVNC.VNCViewer       6.1.1.28093  6.21.406    winget
Microsoft Windows Desktop Runtime Microsoft.dotnetRuntime 3.1.13.29816 5.0.7.30113 winget

❯ winget upgrade Mozilla.Firefox
No applicable update found.

image

RayJW commented 3 years ago

I can confirm that I am affected by the same issue. grafik There are multiple packages affected for me. 4K Video Downloader is one of them, but also WinRAR or the Epic Games Launcher are giving me this error.

OfficialEsco commented 3 years ago

@denelon you might not want to move every subject about this to the Package Repo when it points to a issue with winget-cli

denelon commented 3 years ago

@OfficialEsco I'm trying to balance which ones can be addressed with the package metadata vs. closing them as duplicates. Do you think this one belongs in CLI?

OfficialEsco commented 3 years ago

As i said i cannot replicate this with a clean install, therefore there is no issue on the Package side and there most be a bug with the CLI as this have been reported since winget upgrade release... Another one https://github.com/microsoft/winget-pkgs/issues/18417#issuecomment-865184624

KaranKad commented 3 years ago

This issue might be related to winget-pkgs @kdpuvvadi Did you first install Firefox from it's website using exe installer or from winget?

I was able to replicate this issue by installing old version of Firefox using exe installer and then trying winget upgrade Mozilla.Firefox

❯ winget upgrade
Name                              Id                      Version      Available   Source
-----------------------------------------------------------------------------------------
Mozilla Firefox                   Mozilla.Firefox         89.0         89.0.1      winget
Winamp                            Radionomy.Winamp        5.8          5.8         winget
Microsoft Windows Desktop Runtime Microsoft.dotnetRuntime 5.0.6.30021  5.0.7.30113 winget
TechPowerUp GPU-Z                 TechPowerUp.GPU-Z       Unknown      2.40.0      winget
Microsoft Windows Desktop Runtime Microsoft.dotnetRuntime 3.1.15.30014 5.0.7.30113 winget

❯ winget upgrade Mozilla.Firefox
No applicable update found.

WinGet's Firefox manifest only contains msi installer so that might be the issue.

denelon commented 3 years ago

@KaranKad thanks for figuring this one out. We do try to avoid updating a package with a different "InstallerType".

OfficialEsco commented 3 years ago

winget CLI need to explain this instead of No applicable update found.. A better reporting would most likely help solve most of these issues since we could narrow it down.

denelon commented 3 years ago

https://github.com/microsoft/winget-cli/issues/1196

kdpuvvadi commented 3 years ago

This issue might be related to winget-pkgs @kdpuvvadi Did you first install Firefox from it's website using exe installer or from winget?

only installed it from winget. as others in the screenshot.

KaranKad commented 3 years ago

@denelon It actually does not upgrade even if previously installed using msi installer. Now I installed old version of firefox from winget which installs from msi installer and then tried winget upgrade Mozilla.Firefox which should install next version from msi installer but it throws No applicable update found.. Looks like the problem might be related to winget-cli after all. 😅

❯  winget install firefox -v 89.0
Found Mozilla Firefox [Mozilla.Firefox]
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://download-installer.cdn.mozilla.net/pub/firefox/releases/89.0/win64/en-US/Firefox%20Setup%2089.0.msi
  ██████████████████████████████  53.4 MB / 53.4 MB
Successfully verified installer hash
Starting package install...
Successfully installed

❯  winget upgrade
Name                              Id                      Version      Available   Source
-----------------------------------------------------------------------------------------
Mozilla Firefox                   Mozilla.Firefox         89.0         89.0.1      winget

❯  winget upgrade Mozilla.Firefox
No applicable update found.
kdpuvvadi commented 3 years ago

@KaranKad I've just tested that. reults the same. it might the issue with cli.

❯ winget install Mozilla.Firefox -v 84.0
Found Firefox [Mozilla.Firefox]
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://download-installer.cdn.mozilla.net/pub/firefox/releases/84.0/win64/en-US/Firefox%20Setup%2084.0.msi
  ██████████████████████████████  55.2 MB / 55.2 MB
Successfully verified installer hash
Starting package install...
Successfully installed

❯ winget upgrade
Name                              Id                          Version      Available   Source
---------------------------------------------------------------------------------------------
Mozilla Firefox             Mozilla.Firefox             84.0         89.0.1      winget

❯ winget upgrade firefox
No applicable update found.
kdpuvvadi commented 3 years ago

And winget install firefox installs the latest version though.

❯ winget install firefox
Found Mozilla Firefox [Mozilla.Firefox]
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://download-installer.cdn.mozilla.net/pub/firefox/releases/89.0.1/win64/en-US/Firefox%20Setup%2089.0.1.msi
  ██████████████████████████████  53.3 MB / 53.3 MB
Successfully verified installer hash
Starting package install...
Successfully installed
OfficialEsco commented 3 years ago

Can actually confirm this is happening on a PC which i installed Firefox on via Winget before, the issue might be the ProductCode on the Firefox MSI installer which is not changing?

bcrod commented 3 years ago

Somehow the winget has this problem when the app doesn't provide the version number to windows. Or is it just me?

image image image

bcrod commented 3 years ago

The solution for me was to edit reg (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall) and  create the missing "DisplayVersion" keys.

cloudrootab commented 3 years ago

The solution for me was to edit reg (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall) and  create the missing "DisplayVersion" keys.

For me the program (Gog.Galaxy in this case) was located in HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall

But adding the 'DisplayVersion' key, did in fact make winget see that it doesn't need to download the same installer over and over again.. Not sure of what will happen after an upgrade though.

OfficialEsco commented 3 years ago

Not sure of what will happen after an upgrade though.

PS C:\Users\WDAGUtilityAccount\Desktop\winget-pkgs> winget install GOG.Galaxy --version 2.0.35.19
Found GOG Galaxy [GOG.Galaxy]
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://content-system.gog.com/open_link/download?path=/open/galaxy/client/2.0.35.19/setup_galaxy_2.0.35.19a.exe
  ██████████████████████████████   231 MB /  231 MB
Successfully verified installer hash
Starting package install...
Successfully installed
PS C:\Users\WDAGUtilityAccount\Desktop\winget-pkgs> winget upgrade
Name           Id             Version     Available   Source
------------------------------------------------------------
Microsoft Edge Microsoft.Edge 89.0.774.68 91.0.864.54 winget
GOG Galaxy     GOG.Galaxy     Unknown     2.0.37.384  winget

Registry Workarond

PS C:\Users\WDAGUtilityAccount\Desktop\winget-pkgs> winget upgrade
Name           Id             Version     Available   Source
------------------------------------------------------------
Microsoft Edge Microsoft.Edge 89.0.774.68 91.0.864.54 winget
GOG Galaxy     GOG.Galaxy     2.0.35.19   2.0.37.384  winget
PS C:\Users\WDAGUtilityAccount\Desktop\winget-pkgs> winget upgrade GOG.Galaxy
Found GOG Galaxy [GOG.Galaxy]
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://content-system.gog.com/open_link/download?path=/open/galaxy/client/2.0.37.384/setup_galaxy_2.0.37.384.exe
  ██████████████████████████████   273 MB /  273 MB
Successfully verified installer hash
Starting package install...
Successfully installed
PS C:\Users\WDAGUtilityAccount\Desktop\winget-pkgs> winget upgrade
Name           Id             Version     Available   Source
------------------------------------------------------------
Microsoft Edge Microsoft.Edge 89.0.774.68 91.0.864.54 winget
GOG Galaxy     GOG.Galaxy     Unknown     2.0.37.384  winget
bcrod commented 3 years ago

Winget should also read and extract the application's version directly from the executable (specific metadata) and make the comparison if other methods fail or if the version is "unknown". GOG.exe has this metadata.

bcrod commented 3 years ago

Lockhunter developers email me and provide a new version and now shows correctly the version number in the windows uninstall menu. I think for the "unknown" version problem the solution is this.

image

chausner commented 3 years ago

I am having the same issue with WinRAR. Attempting to upgrade it shows "No applicable update found".

Name                         ID                                    Version         Verfügbar       Quelle
----------------------------------------------------------------------------------------------------------
WinRAR                       RARLab.WinRAR                         6.01.0          6.02.0          winget

My installation does have the right version number in ARP but the title does not match what winget expects: image I don't remember whether I originally installed it via winget or another installer.

kdpuvvadi commented 3 years ago

Just observed something. If you are upgrading all with --all & the installation is not silent and for some reason any of the upgrading apps launches itself after upgrade, the above persists. as @OfficialEsco said Firefox has different product codes but here i've a problem with powertoys.

❯ winget upgrade
Name                Id                  Version Available Source
----------------------------------------------------------------
Thonny              AivarAnnamaa.Thonny 3.3.10  3.3.11    winget
PowerToys (Preview) Microsoft.PowerToys 0.37.2  0.41.2    winget

❯ winget upgrade --all
Found Postman [Postman.Postman]
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://dl.pstmn.io/download/version/8.7.0/win64
  ██████████████████████████████   111 MB /  111 MB
Successfully verified installer hash
Starting package install...
Successfully installed

Found Thonny [AivarAnnamaa.Thonny]
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://github.com/thonny/thonny/releases/download/v3.3.11/thonny-3.3.11.exe
  ██████████████████████████████  17.0 MB / 17.0 MB
Successfully verified installer hash
Starting package install...
Successfully installed

If you see above, postman update does not appear when checking for updates with winget upgrade but when upgrading all with winget upgrade --all postman starts installing and as soon as postman launches upgrade stops. I was able upgrade powertoys on different pc but here i can't. Here installer is exe though.

Edit:

winget upgrade
Name                Id                  Version Available Source
----------------------------------------------------------------
PowerToys (Preview) Microsoft.PowerToys 0.37.2  0.41.2    winget

❯ winget upgrade --all
No applicable update found.
OfficialEsco commented 3 years ago

@chausner

I am having the same issue with WinRAR. Attempting to upgrade it shows "No applicable update found".

What Language link did you install WinRAR with? (Or what language is your WinRAR in?) Each language have a different installer for some dumb reason and they don't release at the same time...

@kdpuvvadi I just looked into Postman and realized the InstallerType and InstallerSwitches was wrong (it won't start after updating now).. However i didn't get a update from winget upgrade --all, but this might be a winget-cli issue.

I was able upgrade powertoys on different pc but here i can't. Here installer is exe though.

I don't see why this is happening, there is no x86, there is no different locales, the ProductCode should have been updated 10 hours ago, try winget source update; winget upgrade Microsoft.Powertoys again

Also found a issue myself

PS C:\Users\WDAGUtilityAccount> winget upgrade
Name           Id             Version     Available   Source
------------------------------------------------------------
Microsoft Edge Microsoft.Edge 89.0.774.68 91.0.864.59 winget

PS C:\Users\WDAGUtilityAccount> winget upgrade --all
No applicable update found.

Preinstalled Windows 10/Sandbox probably got the exe and the manifest does not have the exe, @ImJoakim can you find and include the exe?

cloudrootab commented 3 years ago

@OfficialEsco

winget source update; winget upgrade Microsoft.Powertoys

winget source update && winget upgrade && winget upgrade Microsoft.PowerToys
Updating all sources...
Updating source: winget
Done
Name                Id                  Version Available Source
----------------------------------------------------------------
Google Cloud SDK    Google.CloudSDK     Unknown 346.0.0   winget
PowerToys (Preview) Microsoft.PowerToys 0.41.2  0.41.3    winget
No applicable update found.

This was done in an administrator command line, 11:09 29th-Juni (CEST)

Update: I've uninstalled PowerToys, and reinstalled the previous version (0.41.2) entirely from/with winget. And it still doesn't know how to do the upgrade. Uninstalling, and installing the latest. Does pull the actual latest version.

jedieaston commented 3 years ago

I think PowerToys has issues because their exe runs an MSI (although I'm not 100% sure, I've experienced this issue though). Once dependency support is in WinGet, we should see if they can ship their MSI in their GitHub releases so we can install it that way.

denelon commented 3 years ago

@cloudrootab we've identified one of the issues with PowerToys is the installer behavior. The installer is a .msi wrapped up in a .exe. The .exe does some work to manage dependencies, and then the MSI installs PowerToys. When the Windows Package Manager does the comparison for the package, it sees the mismatch between the .exe installer in the manifest and the MSI as the installer type in Add / Remove Programs. The current behavior is to halt installation. We're working with the PowerToys team to identify any other issues so we can make the appropriate changes to improve this behavior.

chausner commented 3 years ago

What Language link did you install WinRAR with? (Or what language is your WinRAR in?) Each language have a different installer for some dumb reason and they don't release at the same time...

My WinRAR installation is in German.

OfficialEsco commented 3 years ago

What Language link did you install WinRAR with? (Or what language is your WinRAR in?) Each language have a different installer for some dumb reason and they don't release at the same time...

My WinRAR installation is in German.

I forgot to answer this multiple times 🤦‍♂️ German is actually in the manifest, the installer was just not released when i updated WinRAR, the German locale got added yesterday in https://github.com/microsoft/winget-pkgs/pull/19300, there should be a simpler way since the locales gets available at different times.. as you can see ja-JP is still not updated to the latest version

chausner commented 3 years ago

German is actually in the manifest, the installer was just not released when i updated WinRAR, the German locale got added yesterday in microsoft/winget-pkgs#19300

I see, thanks for the clarification! I can confirm it upgraded successfully today when I retried.

auanasgheps commented 3 years ago

Hi, I have a similar issue with VMware Workstation. Originally installed some months ago with Winget, shows the update with winget upgrade but is unable to find it when I execute winget upgrade VMware.WorkstationPro.

Should I open a new case? This program does not have language installers like WinRar does.

OfficialEsco commented 3 years ago

Hi, I have a similar issue with VMware Workstation. Originally installed some months ago with Winget, shows the update with winget upgrade but is unable to find it when I execute winget upgrade VMware.WorkstationPro.

Should I open a new case? This program does not have language installers like WinRar does.

Try once https://github.com/microsoft/winget-pkgs/pull/20134 gets merged, might have been the architecture. However it seems weird, its detected as x64 and a user installation, but the exe is a x86 and a machine wide install...

auanasgheps commented 3 years ago

Hi, I have a similar issue with VMware Workstation. Originally installed some months ago with Winget, shows the update with winget upgrade but is unable to find it when I execute winget upgrade VMware.WorkstationPro. Should I open a new case? This program does not have language installers like WinRar does.

Try once microsoft/winget-pkgs#20134 gets merged, might have been the architecture. However it seems weird, its detected as x64 and a user installation, but the exe is a x86 and a machine wide install...

Right, thanks, I'll try once merged! I'm surprised it's a 32 bit installer actually.

derkrasseleo commented 3 years ago

image I think this is related to this issue..

OfficialEsco commented 3 years ago

I think this is related to this issue..

Ooops didn't look enough

Visual Studio: iirc they recently changed the version numbers

VirtualBox: Try running Terminal as Administrator, exit code 1 usually means access denied

Badlion: I'll check it out

derkrasseleo commented 3 years ago

I think this is related to this issue..

Try running Terminal as Administrator, exit code 1 usually means access denied

image Still failing, but with another error..

ImJoakim commented 3 years ago

I think this is related to this issue..

Try running Terminal as Administrator, exit code 1 usually means access denied

Still failing, but with another error..

Try rebooting your computer.

Edit: Exit code 3010: A reboot is required to complete the install.

OfficialEsco commented 3 years ago

I think this is related to this issue..

Try running Terminal as Administrator, exit code 1 usually means access denied

Still failing, but with another error..

Try rebooting your computer.

Exit code 3010 actually means reboot required yes😁

Does it install correctly? If so we can add that exit code as valid exit code

derkrasseleo commented 3 years ago

I think this is related to this issue..

Try running Terminal as Administrator, exit code 1 usually means access denied

Still failing, but with another error..

Try rebooting your computer.

Exit code 3010 actually means reboot required yes😁

Does it install correctly? If so we can add that exit code as valid exit code

Why doesn't it say that right in the command line?

derkrasseleo commented 3 years ago

I think this is related to this issue..

Try running Terminal as Administrator, exit code 1 usually means access denied

Still failing, but with another error..

Try rebooting your computer.

Exit code 3010 actually means reboot required yes😁

Does it install correctly? If so we can add that exit code as valid exit code

Yes, but winget should not handle this as error. It should just say something like: "To finish the installation, a reboot is required. Reboot now? (y/n)"

ImJoakim commented 3 years ago

Yes, but winget should not handle this as error. It should just say something like: "To finish the installation, a reboot is required. Reboot now? (y/n)"

It's currently on the To-Do list, more info can be found in this issue: https://github.com/microsoft/winget-cli/issues/994#issue-903025739

OfficialEsco commented 3 years ago

Why doesn't it say that right in the command line?

Yes, but winget should not handle this as error. It should just say something like: "To finish the installation, a reboot is required. Reboot now? (y/n)"

Tell that to all the different exit codes different softwares can have

Edit:

Visual Studio: iirc they recently changed the version numbers

Related thread: https://github.com/microsoft/winget-pkgs/pull/19389

USMA56795 commented 3 years ago

In case it's helpful, I can confirm that "Unknown" seems to be shown for applications that don't register their version with Windows. The two packages that stick out for me are Blizzard.BattleNet and GOG.Galaxy.

2021-07-29_020707_UTC

2021-07-29_021113_UTC

2021-07-29_021222_UTC

2021-07-29_021200_UTC

KaranKad commented 3 years ago

Oracle.JavaRuntimeEnvironment has similar issue image

nascentt commented 3 years ago
winget upgrade
Name                                  Id                              Version     Available   Source
----------------------------------------------------------------------------------------------------
4K Video Downloader                   OpenMedia.4KVideoDownloader     4.15.0.4160 4.17.2.4460 winget
PS C:\Code\PowerShell> winget upgrade OpenMedia.4KVideoDownloader
No applicable update found.
OfficialEsco commented 3 years ago

@nascentt can you check the log at %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir ? If the path does not work use winget --info

nascentt commented 3 years ago

@nascentt can you check the log at %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir ? If the path does not work use winget --info

WinGet-2021-09-13-12-12-54.790.log

ItzLevvie commented 3 years ago

By looking at the error logs, you likely installed 4kvideodownloader_4.15.0_x64_online.exe?

The packages only includes the offline MSI installer at the moment.

OfficialEsco commented 3 years ago
2021-09-13 12:12:56.282 [CLI ] Installer [X64,Msi,Machine,en-US] not applicable: Installed package type is not compatible with Msi
2021-09-13 12:12:56.282 [CLI ] Installer [X86,Msi,Machine,en-US] not applicable: Installed package type is not compatible with Msi

It appears you've used the Online Installer which a exe/burn https://dl.4kdownload.com/app/4kvideodownloader_4.17.2_online.exe

This should be a easy fix if it supports silent install

Edit: it does, and it actually reports the same version number as the MSI so no additional issues

strandloper commented 2 years ago

It even happens with Microsoft's own packages just tried to upgrade Powertoys and despite winget showing there is an update available it fails to upgrade. image

This what the log shows. I'm wondering if that message might mean I didn't originally install Powertoys with winget but I thought the Source in the list shows where the installed app was sourced from; if so it was installed with winget.

2021-10-17 21:17:58.875 [CLI ] Found one app. App id: Microsoft.PowerToys App name: PowerToys (Preview)
2021-10-17 21:17:58.876 [REPO] Downloading manifest
2021-10-17 21:17:58.876 [CORE] WinINet downloading from url: https://winget.azureedge.net/cache/manifests/m/Microsoft/PowerToys/0.47.1/5a50-Microsoft.PowerToys.yaml
2021-10-17 21:18:00.149 [CORE] Download hash: 5cda9329abeb59d30e8009e127509516405187ab1ae764ed8605e48de37965b3
2021-10-17 21:18:00.150 [CORE] Download completed.
2021-10-17 21:18:00.152 [CLI ] Starting installer selection.
2021-10-17 21:18:00.152 [CLI ] Installer [X64,Exe,Machine,en-US] not applicable: Installed package type is not compatible with Exe
2021-10-17 21:18:00.176 [CLI ] Terminating context: 0x8a15002b at D:\a\_work\1\s\external\pkg\src\AppInstallerCLICore\Workflows\UpdateFlow.cpp:46