I saw with some interest that Microsoft released .NET 8.0 earlier this week. As I was running winget yesterday, I also noticed that Microsoft Windows Desktop Runtime needed an update from version 6.0.24 to 6.0.25 (see lead-in graphic, where it shows up second from the top). “Hmmm…” I thought “I wonder if something will blow up if I delete this older version.” So I did. And indeed, when I went on to update PowerToys later that afternoon, I noticed it was smart enough to install version 6.0.25 during its own install process. Hence my claim: PowerToys needs specific .NET runtime.
Why PowerToys Needs Specific .NET Runtime…
There’s obviously some dependencies in the code that link to this specific version of .NET. Even though I installed 8.0 (and you can also see a current 7.0 version in the lead-in graphic as well) there’s something in the 6.x versions that PowerToys needs to do its thing properly.
Please take this as an illlustration of why one so commonly finds multiple generations of the various .NET runtimes (Core, Desktop, SDK and Framework) running on a single Windows instance. Different apps, applications, and even OS built-ins need different ,NET runtimes and so forth to do their jobs. And that’s the way things go on desktops and servers here in Windows-World. Get used to it!
Meet the .NET uninstall tool
All this goes to explain why there’s a special tool named
dotnet-core-uninstall that lets you get rid of those .NET elements for which no current dependencies exist. See this terrific MS Learn document “.NET uninstall tool” for all the gory details. It runs inside PowerShell or Command Prompt, and helps you find and remove obsolete .NET components. Good stuff!