microsoft / microsoft/winget-cli
WinGet Incorrectly Matches Two Different Applications Sharing the Same Package Name
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 26.4k
- Forks
- 1.8k
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 15
Description
WinGet incorrectly identifies two distinct applications as the same package because they share the same PackageName, despite having different UpgradeCode and ProductCode values.
Affected applications:
- Krisp MA
- Krisp CX
Both applications have the same PackageName but are completely separate products with unique UpgradeCode and ProductCode values.
Steps to Reproduce
- Install Krisp CX on a machine.
- Run winget upgrade.
- WinGet detects Krisp MA (which has a higher version number) and attempts to install it as an upgrade to Krisp CX.
Expected Behavior
WinGet should treat the two applications as separate and distinct packages, using UpgradeCode or ProductCode as the primary identifier rather than PackageName.
Actual Behavior
WinGet matches packages by PackageName and incorrectly attempts to upgrade Krisp CX with the Krisp MA installer, replacing one application with another.
Temporary Workaround
As a temporary solution, we have removed all Krisp versions from WinGet.
Questions
- Is there a configuration or workaround to prevent WinGet from matching packages solely by PackageName?
- Is it possible to configure WinGet to detect and differentiate applications based exclusively on UpgradeCode or ProductCode?
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the upgrade scenario with Krisp CX installed and inspect WinGet's package matching during winget upgrade. Compare how PackageName, UpgradeCode, and ProductCode are used for the two applications. Done means WinGet keeps Krisp MA and Krisp CX distinct and no longer attempts to replace Krisp CX with Krisp MA.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100