Brief description of your issue
winget is not able to handle the situation where there are multiple versions of the same package installed, based on name. An example of this in action are .NET runtimes, where you often have multiple major versions installed side-by-side.
Steps to reproduce
- Have .NET Core Runtime 3 and .NET Core Runtime 5 installed.
- Run
winget upgrade --all
Expected behavior
Ideally, I expect .NET Core Runtime 3 to be considered separate from .NET Core Runtime 5. When winget checks for upgrades, it should only look for upgrades relating to that major version.
Actual behavior
winget is seeing both .NET Core Runtime 3 (version 3.1.11.29516 on my computer) and .NET Core Runtime 5 (version 5.0.3.29723 on my computer) and reporting that an upgrade to version 5.0.4.29817 is available for both runtimes.
winget upgrade:
Name Id Version Available Source
-------------------------------------------------------------------------
.NET Core Runtime Microsoft.dotnetRuntime 5.0.3.29723 5.0.4.29817 winget
.NET Core Runtime Microsoft.dotnetRuntime 3.1.11.29516 5.0.4.29817 winget
winget upgrade --all:
Found .NET Core Runtime [Microsoft.dotnetRuntime]
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.visualstudio.microsoft.com/download/pr/7a5d15ae-0487-428d-8262-2824279ccc00/6a10ce9e632bce818ce6698d9e9faf39/windowsdesktop-runtime-5.0.4-win-x64.exe
██████████████████████████████ 52.2 MB / 52.2 MB
Successfully verified installer hash
Starting package install...
Successfully installed
Found .NET Core Runtime [Microsoft.dotnetRuntime]
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.visualstudio.microsoft.com/download/pr/c6541c87-42f2-4c5d-b6db-2df0dade5e00/13e89a5fec3ddb224cd93dd18b0761ff/windowsdesktop-runtime-5.0.3-win-x64.exe
██████████████████████████████ 52.4 MB / 52.4 MB
Successfully verified installer hash
Starting package install...
Installer failed with exit code: 1638
Environment
Windows Package Manager v0.2.10191 Preview
Copyright (c) Microsoft Corporation. All rights reserved.
Windows: Windows.Desktop v10.0.19042.867
Package: Microsoft.DesktopAppInstaller v1.11.10191.0
Logs: %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir
Links
--------------------------------------------------------
Privacy Statement https://aka.ms/winget-privacy
License Agreement https://aka.ms/winget-license
Third Party Notices https://aka.ms/winget-3rdPartyNotice
Homepage https://aka.ms/winget
Brief description of your issue
winget is not able to handle the situation where there are multiple versions of the same package installed, based on name. An example of this in action are .NET runtimes, where you often have multiple major versions installed side-by-side.
Steps to reproduce
winget upgrade --allExpected behavior
Ideally, I expect .NET Core Runtime 3 to be considered separate from .NET Core Runtime 5. When winget checks for upgrades, it should only look for upgrades relating to that major version.
Actual behavior
winget is seeing both .NET Core Runtime 3 (version 3.1.11.29516 on my computer) and .NET Core Runtime 5 (version 5.0.3.29723 on my computer) and reporting that an upgrade to version 5.0.4.29817 is available for both runtimes.
winget upgrade:winget upgrade --all:Environment