winget-cli
winget-cli copied to clipboard
Some packages will not listed by winget upgrade, even upgrade packages are available in winget repository
Brief description of your issue
Certain packages that are installed on a device will not be handled (or not handled correctly) via Winget upgrade This might also affect other packages. In this case the source and target installers are MSI so there is no confusion about different installers.
winget list shows the packages and their installer IDs. (see environment)
Steps to reproduce
- have outdated versions of C++ Redist 2005, 2008, 2010, 2012, 2013 or 2015-2019 installed
- run winget upgrade
- notice these packages are not listed that upgrades are available e.g. 2015-2019 14.28.x to 14.29.30037 or other combinations
Expected behavior
winget upgrade should list available upgrades for these packages
Actual behavior
winget upgrade does not list upgrades for these packages
Environment
Windows Package Manager v1.0.11451 Copyright (c) Microsoft Corporation. Alle Rechte vorbehalten.
Windows: Windows.Desktop v10.0.21390.1 Paket: Microsoft.DesktopAppInstaller v1.11.11451.0
Windows 10 Insider Dev 21390
Any other software? Upgraded the packages manually via winget install result:
PS C:\WINDOWS\system32> winget list c++ Name ID Version
Microsoft Visual C++ 2012 Redistributable (x86) - 11.0.61030 {33d1fd90-4274-48a1-9bc1-97e33d9c2d6f} 11.0.61030.0 Microsoft Visual C++ 2015-2019 Redistributable (x64) - 14.29.30037 {4b2f3795-f407-415e-88d5-8c8ab322909d} 14.29.30037.0 Microsoft Visual C++ 2012 Redistributable (x64) - 11.0.61030 {ca67548a-5ebe-413a-b50c-4b9ceb6d66c6} 11.0.61030.0 Microsoft Visual C++ 2015-2019 Redistributable (x86) - 14.29.30037 {dfea0fad-88b2-4a1f-8536-3f8f9391f4ef} 14.29.30037.0
@Karl-WE we're looking into these. This is one of those areas where the matching is quite challenging. We're looking at an "UpgradeCode" that hopefully will help with these specific packages and many other .MSI installers.
https://github.com/microsoft/winget-cli/issues/1073#issuecomment-921870634
In my case Winget lists these packages after execution "winget upgrade", but it does not work correctly. I had "C++ 2015-2019 Redistributable (x86)" version 14.30 and "C++ 2015-2019 Redistributable (x64)" version 14.29 installed back when 14.30 was latest version (version numbers are totally random). Winget incorrectly lists that x86 package is outdated and tries to update it instead of x64 version in winget command. Fixed this by manually specifying x64 package in winget command. Noticed this on both of my machines at the different times.
@Danik1601 take a look at:
- microsoft/winget-cli/issues/1413
Hello, just had the very same problem on version winget v1.2.10271.
I have the following outdated packages (version 11.0.60610) :
- Microsoft Visual C++ 2012 Redistributable (x64) - 11.0.60610 {a1909659-0a08-4554-8af1-2175904903a1} 11.0.60610.1
- Microsoft Visual C++ 2012 Redistributable (x86) - 11.0.60610 {95716cce-fc71-413f-8ad5-56c2892d4b3a} 11.0.60610.1
And I should be offered (version 11.0.61030.0) :
- Microsoft Visual C++ 2012 Redistributable (x64) Microsoft.VC++2012Redist-x64 11.0.61030.0 winget
- Microsoft Visual C++ 2012 Redistributable (x86) Microsoft.VC++2012Redist-x86 11.0.61030.0 winget
But winget upgrade does not show any update for those packages.
Thank you.
I believe we've got enough of the work in place with Windows Package Manager 1.3 Release Candidate to resolve these issues.
Some work will need to be done on the manifests to add the correct data for Windows Apps & Features in the manifest.
The Visual C++ Redistributable manifests have been updated with the appsAndFeatures data to help with matching in the registry. They have also been split into two packages by architecture to help.
@Karl-WE We just released WinGet 1.4 today. I wanted to follow up and see if this Issue is still actively causing trouble or not.
Hi Demitrius, I would need to install older C++ distributions to test this. I expect 1.4 is found in the official releases. There are some other quirks I have documented in my backlog to repro and report. Will let you know how this is going about C++.
Thanks. I also wanted to cross-link:
- https://github.com/microsoft/winget-cli/issues/229
We're seeing some forced reboots even when we pass the arguments to suppress them.
I still sometimes see the behaviour that packages won't upgrade or not being listed, other packages than listed in this PR. I am collecting repros on this. Quite hard to track.
Yes, they are. This is one of the areas where MSIX based installations tend to shine. MSI's aren't terrible since they have a "3010 ERROR_SUCCESS_REBOOT_REQUIRED", but lots of .exe installers pull in other dependencies. It's often the case that those other dependencies are runtimes that need to be rebooted in order to apply.
[Policy] Command-Upgrade
We've been working on the side-by-side scenarios. You could try the latest release and enable the experimental feature on:
- https://github.com/microsoft/winget-cli/releases/tag/v1.8.924-preview
Please provide feedback at:
- https://github.com/microsoft/winget-cli/discussions/4281
Hello @denelon, checking my OP it was about MS C++ redist, where one usually do not want side by side versions. I am not sure if the reported issue, from long ago is still something that happen. If you are not seeing similar that upgrades are not installed even though upgrade version exist, then I believe this PR is worth a closure.