-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Multiple installed versions of .NET Desktop Runtime are incorrectly matched when running winget upgrade
.
#4158
Comments
Hi I'm an AI powered bot that finds similar issues based off the issue title. Please view the issues below to see if they solve your problem, and if the issue describes your problem please consider closing this one and thumbs upping the other issue to help us prioritize it. Thank you! Open similar issues:
Closed similar issues:
|
Regarding this, I've noticed .NET installations have a property in the Windows registry called |
[Policy] Issue-Bug |
Same issue with Microsoft.DotNet.DesktopRuntime.7 -> 8. Strangely not for 'Microsoft.DotNet.AspNetCore.7 -> 8' |
After fiddling around and (also) running: Seems that the '7 -> 8 upgrade' isn't showing anymore:
|
We're doing some work to handle side-by-side installed packages better. I'm expecting a WinGet 1.8-preview release with the experimental feature to be available soon. |
Thank you! This fixed it for me also! |
No change for me with this new preview version and sideBySide set to true. |
Just posting for others who find this issue: We've been working on the side-by-side scenarios. You could try the latest release and enable the experimental feature on: Please provide feedback at: |
Brief description of your issue
When multiple versions of Microsoft .NET Desktop Runtime are installed under certain circumstances (see below), WinGet CLI will incorrectly identify some of them, offering an update that it should not.
Steps to reproduce
First of all, I should comment that this has supposedly happened as a result of a
Lenovo Vantage Service
update due to dependencies it has with bothMicrosoft ASP.NET Core 7.0.15 - Shared Framework (x64)
andMicrosoft Windows Desktop Runtime - 7.0.15 (x64)
and which I have managed to successfully recreate on a relatively fresh Windows 10 Version 22H2 virtual machine running on Hyper-V.With that said, here are the step-by-step instructions on how to reproduce it:
.NET Desktop Runtime 6.0
with WinGet:winget install Microsoft.DotNet.DesktopRuntime.6
..NET Desktop Runtime 7.0
but instead of using WinGet, download the installer from the official website and install it manually (be sure it's the Desktop Runtime and matching architecture).winget upgrade
and see that an update is offered, however, it is forMicrosoft.DotNet.DesktopRuntime.6
trying to update to.NET 7.0
(looks like a mismatch):Microsoft Windows Desktop Runtime - 7.0.15
fromSettings
orControl Panel
and runwinget upgrade
again, it will report no updates available, as it should:Diving into the WinGet logs, I have detected the following:
The interesting part here is that there are multiple possible matches but there's no
Appropriate available package could not be determined
message, and then seems to be that it's calling onpinning.db
and that's where it maybe determines that .NET 6.0 was installed previously with WinGet so it (mis)match the .NET 7.0 installation as a .NET 6.0 installation too? I don't really know.Expected behavior
It should detect
Microsoft Windows Desktop Runtime - 7.0.15
asMicrosoft.DotNet.DesktopRuntime.7
instead ofMicrosoft.DotNet.DesktopRuntime.6
.Actual behavior
It mismatch the
Microsoft Windows Desktop Runtime - 7.0.15
package ID because it was installed without WinGet and there's another version that was installed previously using WinGet.Environment
The text was updated successfully, but these errors were encountered: