microsoft / microsoft/winget-cli

Incorrect package name matching

Open
#3,696 8 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Area-Matching Command-Install Dependencies Issue-Bug
Dominant language
C++
Stars
26.4k
Forks
1.8k
Avg merge
1d 11h
Merged PRs (30d)
15

Description

Brief description of your issue

While installing devhome, WinGet could not install the dependency for me as it incorrectly correlates the dependency with an installed package

 ~ winget install devhome
Found Dev Home (Preview) [Microsoft.DevHome] Version 0.503.261.0
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
No suitable installer found for manifest: Microsoft.WindowsAppRuntime.1.3 1.3.3Error processing package dependencies, exiting...

Logs:
WinGet-2023-09-27-22-55-38.740.log

Digging deeper, it seems to me that WinGet is incorrectly matching an installed package Windows SDK AddOn with the PackageId Microsoft.WindowsAppRuntime.1.3

 ~ winget list "windowsappsdk"
Name              Id                              Version Available Source
--------------------------------------------------------------------------
Windows SDK AddOn Microsoft.WindowsAppRuntime.1.3 < 1.3.2 1.3.3     winget

I believe this mismatch is due to the fact that 1.3.2 version of WindowsAppRuntime has PackageName Windows App SDK which is getting matched with installed package with name Windows SDK Addon. Since 1.3.3 manifest PackageName was modified to the correct Windows App Runtime, the installed package is not getting matched with the 1.3.3 version.

ARP Entry for Windows SDK AddOn
image

ARP Entry(s) for Windows App Runtime after manual installation
image

Steps to reproduce
  1. Have Windows SDK AddOn installed on your machine (no idea tho where i got that from)
  2. winget list "windowsappsdk"
  3. The installed package gets incorrectly correlated to Microsoft.WindowsAppRuntime.1.3
  4. This stops me from correctly installing devhome as it has a dependency on Windows App Runtime.
Expected behavior

(If I'm understanding this correctly) Windows SDK AddOn should not be getting matched with Windows App SDK. I would expect that the "App" in Windows App SDK would prevent it from getting matched with Windows SDK AddOn

Actual behavior
 ~ winget list "windowsappsdk"
Name              Id                              Version Available Source
--------------------------------------------------------------------------
Windows SDK AddOn Microsoft.WindowsAppRuntime.1.3 < 1.3.2 1.3.3     winget
Environment
Windows Package Manager v1.6.2631
Copyright (c) Microsoft Corporation. All rights reserved.

Windows: Windows.Desktop v10.0.22621.2283
System Architecture: X64
Package: Microsoft.DesktopAppInstaller v1.21.2631.0

Winget Directories
-------------------------------------------------------------------------------------------------------------------------------
Logs                               %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir
User Settings                      %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json
Portable Links Directory (User)    %LOCALAPPDATA%\Microsoft\WinGet\Links
Portable Links Directory (Machine) C:\Program Files\WinGet\Links
Portable Package Root (User)       %LOCALAPPDATA%\Microsoft\WinGet\Packages
Portable Package Root              C:\Program Files\WinGet\Packages
Portable Package Root (x86)        C:\Program Files (x86)\WinGet\Packages
Installer Downloads                %USERPROFILE%\Downloads

Links
---------------------------------------------------------------------------
Privacy Statement   https://aka.ms/winget-privacy
License Agreement   https://aka.ms/winget-license
Third Party Notices https://aka.ms/winget-3rdPartyNotice
Homepage            https://aka.ms/winget
Windows Store Terms https://www.microsoft.com/en-us/storedocs/terms-of-sale

Admin Setting                             State
--------------------------------------------------
LocalManifestFiles                        Enabled
BypassCertificatePinningForMicrosoftStore Disabled
InstallerHashOverride                     Disabled
LocalArchiveMalwareScanOverride           Disabled

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the mismatch with the listed winget list and winget install commands, then compare the attached log with the 1.3.2 and 1.3.3 manifest PackageName values. Trace the package-name matching behavior and add coverage where appropriate; done means Windows SDK AddOn is not reported as Microsoft.WindowsAppRuntime.1.3 and the Dev Home dependency can install correctly.

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
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.