winget-cli
winget-cli copied to clipboard
Winget -e incorrectly matches items
Brief description of your issue
Winget is incorrectly matching items when using the -e switch.
Steps to reproduce
Install a package (Such as Visual C++ 2013 x86) using the following command: winget install -e --id Microsoft.VC++2013Redist-x64 --scope machine --accept-source-agreements --accept-package-agreements
Verify it is installed by running winget list c++
Winget will correctly list that it is installed by showing this: Name Id Version Source
Microsoft Visual C++ 2013 Redistributable (x64) Microsoft.VC++2013Redist-x64 12.0.40664.0 winget (note, only the x64 version is installed)
Then check if the X86 version is installed explicitly with this command winget list -e --id "Microsoft.VC++2013Redist-x86" --accept-source-agreements
Winget will incorrectly now state that the x86 version is installed Name Id Version Source
Microsoft Visual C++ 2013 Redistributable (x86) Microsoft.VC++2013Redist-x86 12.0.40664.0 winget
Expected behavior
Winget should NOT detect the x86 version when it is not installed when running with the -e --id command lines
Actual behavior
Winget will incorrectly now state that the x86 version is installed Name Id Version Source
Microsoft Visual C++ 2013 Redistributable (x86) Microsoft.VC++2013Redist-x86 12.0.40664.0 winget
Environment
Windows Package Manager v1.2.10271
This happens with many versions of the C++ software but may also affect other applications as well.
This is essentially the same as:
- #1413
We are currently working on improving the matching heuristics and adding support in the client to leverage the "AppsAndFeatures" portion of the manifest schema.