Open coder114514 opened 6 months ago
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!
winget list
reports incorrect Id
for Microsoft Windows Desktop Runtime - 7.0.0 (x64)
(#3565), similarity score: 0.81Note: You can give me feedback by thumbs upping or thumbs downing this comment.
I only have one version of desktop runtime installed.
I think the version is being misdetected. It's finding Microsoft.DotNet.DesktopRuntime.6
, but I think the package you have installed might have the slightly different PackageIdentifier
of Microsoft.DotNet.DesktopRuntime.8
(last digit changes).
This is based on the version you have installed showing 8.0.4
, which matches the .8
package:
PS C:\ManVal> Find-WinGetPackage Microsoft.DotNet.DesktopRuntime
Name Id Version Source
---- -- ------- ------
Microsoft .NET Windows Desktop Runtime 9.0 Preview Microsoft.DotNet.DesktopRuntime.Preview 9.0.0-preview.3.24175.3 winget
Microsoft .NET Windows Desktop Runtime 8.0 Microsoft.DotNet.DesktopRuntime.8 8.0.4 winget
Microsoft .NET Windows Desktop Runtime 7.0 Microsoft.DotNet.DesktopRuntime.7 7.0.18 winget
Microsoft .NET Windows Desktop Runtime 6.0 Microsoft.DotNet.DesktopRuntime.6 6.0.29 winget
Microsoft .NET Windows Desktop Runtime 5.0 Microsoft.DotNet.DesktopRuntime.5 5.0.17 winget
Microsoft .NET Windows Desktop Runtime 3.1 Microsoft.DotNet.DesktopRuntime.3_1 3.1.32 winget
PS C:\ManVal>
When your system shows > 6.0.29
, it means that 6.0.29
is the highest version of Microsoft.DotNet.DesktopRuntime.6
in the repo, but somehow the computer's Registry shows a higher version installed. It's showing this because it's mis-matching with the .6
version when it should be matching to the .8
version.
Why is it mis-matching? It matches Registry data against repo data. Sometimes, this is from a previous install that didn't get completely uninstalled, and still has a few lines in the Registry. Could that have happened here?
Well, I cannot figure out where the previous install is. And I've tried installing desktop runtime 6 and then uninstall it, but it is still mis-matching. (btw sry for the late response)
So there's two entries of desktop runtime in the registry. And it seems like only {f1bec...} is recognized by the system (appwiz.cpl) and winget. After I deleted the {f1bec...} entry in the registry, the system and winget is reading the {CE4D...} entry, which isn't matched to any package id by winget at all.
Here's what's happening as of 6.0.31 being installed (automatically by windows update).
winget update --all
Name Id Version Available Source
-----------------------------------------------------------------------------------------------------------------
Microsoft Windows Desktop Runtime - 6.0.31 (x64) Microsoft.DotNet.DesktopRuntime.7 < 7.0.0 7.0.20 winget
After updating to 8.0.6, the issue still isn't solved.
So for reference, it's common to need more than one version installed due to some apps not being updated to accept later versions as compatible (and thus force installing the older version). Right now the currently valid versions of .Net are: .Net 9 as the current preview version .Net 8 as the latest stable and LTS .Net 6 as the previous but still maintained LTS.
winget forcibly upgrading .Net 6 to .Net 7 is not ok as it's not maintained anymore.
===
Just noticed in another issue the experimental "sidebySide" feature. That seems to have fixed the behavior for me.
Brief description of your issue
The version detected by winget is > 6.0.29 and the actual version is 8.0.4
output from
winget list
:output from
winget upgrade
:Steps to reproduce
...
Expected behavior
Should be 8.0.4
Actual behavior
Reports > 6.0.29
Environment