I’ve got a new PC waiting in the wings to take over for my aging production PC. Right now, it’s ensconced in my son’s bedroom, where I use it as a test machine. He also games on it when he comes around. As a Discord user, he checks in on that app daily when he’s here. One of his tools pinned that app, so Winget can’t upgrade it through normal means (e.g. Winget upgrade –all or some equivalent). But I’ve discovered a Winget Discord update trick that works nonetheless.
Pinning Requires Winget Discord Update Trick
For some time now (as described in this July 2020 GitHub thread) users and programs can “pin” packages for Winget. This explicitly holds Discord to some specific version (or range of version numbers). It also means that unless Winget upgrade is targeted with a specific Discord version, it doesn’t perform the upgrade.
The trick to a successful upgrade is to use the –version parameter with Winget upgrade to explicitly specify the upgrade target. For example, I successfully upgraded the upstairs PC with this command:
winget upgrade Discord.Discord –version 1.0.9012
Note: I had to use the “full package name” for the Discord app (“Discord.Discord”). I also had to provide the complete version number (1.0.9012) following the –version parameter. After jumping through those hoops, the pinned version allowed the update. One presumes that the same approach will work for other pinned apps and applications with Winget as well.
It may take some squinting, but you can see Discord’s version info in the lead-in graphic at the far right. It reads “Host 1.0.9012 (30921).” To the left is a Terminal window that shows a successful targeted upgrade (update, actually) of the Discord app itself. It’s easy — if you know how. Those are the deets! And now, it’s all good…