microsoft / microsoft/winget-cli

WinGet does not correlate non-MSIX installer installations of an MSIX application

Open
#5,491 10 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Area-Matching 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

The title is a bit weird, but I'm referring to MSI / EXE or any other installer technology that actually install an MSIX package. Examples I know in the WinGet repo being Microsoft.WSL (MSI installer installing the MSIX) & Microsoft.WindowsRuntime.1.x (EXE installer installing the MSIX). Both of these are not correlated correctly by WinGet.

~ winget list linux
Name                        Id                                                                               Version     Source
--------------------------------------------------------------------------------------------------------------------------------
Ubuntu                      Canonical.Ubuntu                                                                 2404.1.68.0 winget
Ubuntu 24.04.1 LTS          Canonical.Ubuntu.2404                                                            2404.1.26.0 winget
Windows Subsystem for Linux MSIX\MicrosoftCorporationII.WindowsSubsystemForLinux_2.4.13.0_x64__8wekyb3d8bbwe 2.4.13.0
 ~ winget list WindowsAppRuntime
Name                        Id                                                                         Version          Available Source
----------------------------------------------------------------------------------------------------------------------------------------
WindowsAppRuntime.Singleton MSIX\Microsoft.WindowsAppRuntime.Singleton_3.469.1654.0_x64__8wekyb3d8bbwe 3.469.1654.0
WindowsAppRuntime.1.0       MSIX\Microsoft.WindowsAppRuntime.1.0_4.528.1755.0_x86__8wekyb3d8bbwe       4.528.1755.0
WindowsAppRuntime.1.0       MSIX\Microsoft.WindowsAppRuntime.1.0_4.528.1755.0_x64__8wekyb3d8bbwe       4.528.1755.0
WindowsAppRuntime.1.2       MSIX\Microsoft.WindowsAppRuntime.1.2_2000.802.31.0_x64__8wekyb3d8bbwe      2000.802.31.0
WindowsAppRuntime.1.2       MSIX\Microsoft.WindowsAppRuntime.1.2_2000.802.31.0_x86__8wekyb3d8bbwe      2000.802.31.0
WindowsAppRuntime.1.3       MSIX\Microsoft.WindowsAppRuntime.1.3_3000.851.1712.0_x64__8wekyb3d8bbwe    3000.851.1712.0
WindowsAppRuntime.1.3       MSIX\Microsoft.WindowsAppRuntime.1.3_3000.882.2207.0_x64__8wekyb3d8bbwe    3000.882.2207.0
WindowsAppRuntime.1.3       MSIX\Microsoft.WindowsAppRuntime.1.3_3000.934.1904.0_x86__8wekyb3d8bbwe    3000.934.1904.0
WindowsAppRuntime.1.3       MSIX\Microsoft.WindowsAppRuntime.1.3_3000.934.1904.0_x64__8wekyb3d8bbwe    3000.934.1904.0
WindowsAppRuntime.1.1       MSIX\Microsoft.WindowsAppRuntime.1.1_1005.616.1651.0_x86__8wekyb3d8bbwe    1005.616.1651.0
WindowsAppRuntime.1.1       MSIX\Microsoft.WindowsAppRuntime.1.1_1005.616.1651.0_x64__8wekyb3d8bbwe    1005.616.1651.0
WindowsAppRuntime.1.5       MSIX\Microsoft.WindowsAppRuntime.1.5_5001.119.156.0_x64__8wekyb3d8bbwe     5001.119.156.0
WindowsAppRuntime.1.4       MSIX\Microsoft.WindowsAppRuntime.1.4_4000.1227.1637.0_x64__8wekyb3d8bbwe   4000.1227.1637.0
WindowsAppRuntime.1.5       MSIX\Microsoft.WindowsAppRuntime.1.5_5001.159.55.0_x64__8wekyb3d8bbwe      5001.159.55.0
WindowsAppRuntime.1.5       MSIX\Microsoft.WindowsAppRuntime.1.5_5001.178.1908.0_x64__8wekyb3d8bbwe    5001.178.1908.0
WindowsAppRuntime.1.5       MSIX\Microsoft.WindowsAppRuntime.1.5_5001.214.1843.0_x64__8wekyb3d8bbwe    5001.214.1843.0
WindowsAppRuntime.1.4       MSIX\Microsoft.WindowsAppRuntime.1.4_4000.1309.2056.0_x64__8wekyb3d8bbwe   4000.1309.2056.0
WindowsAppRuntime.1.4       MSIX\Microsoft.WindowsAppRuntime.1.4_4000.1309.2056.0_x86__8wekyb3d8bbwe   4000.1309.2056.0
WindowsAppRuntime.1.5       MSIX\Microsoft.WindowsAppRuntime.1.5_5001.275.500.0_x64__8wekyb3d8bbwe     5001.275.500.0
WindowsAppRuntime.1.5       MSIX\Microsoft.WindowsAppRuntime.1.5_5001.311.2039.0_x64__8wekyb3d8bbwe    5001.311.2039.0
WindowsAppRuntime.1.5       MSIX\Microsoft.WindowsAppRuntime.1.5_5001.373.1736.0_x64__8wekyb3d8bbwe    5001.373.1736.0
WindowsAppRuntime.1.5       MSIX\Microsoft.WindowsAppRuntime.1.5_5001.373.1736.0_x86__8wekyb3d8bbwe    5001.373.1736.0
WindowsAppRuntime.1.6       MSIX\Microsoft.WindowsAppRuntime.1.6_6000.401.2352.0_x64__8wekyb3d8bbwe    6000.401.2352.0
WindowsAppRuntime.1.6       MSIX\Microsoft.WindowsAppRuntime.1.6_6000.424.1611.0_x64__8wekyb3d8bbwe    6000.424.1611.0
WindowsAppRuntime.1.6       MSIX\Microsoft.WindowsAppRuntime.1.6_6000.457.2140.0_x86__8wekyb3d8bbwe    6000.457.2140.0
WindowsAppRuntime.1.6       MSIX\Microsoft.WindowsAppRuntime.1.6_6000.457.2140.0_x64__8wekyb3d8bbwe    6000.457.2140.0
WindowsAppRuntime.1.6       MSIX\Microsoft.WindowsAppRuntime.1.6_6000.486.517.0_x64__8wekyb3d8bbwe     6000.486.517.0
WindowsAppRuntime.1.6       MSIX\Microsoft.WindowsAppRuntime.1.6_6000.486.517.0_x86__8wekyb3d8bbwe     6000.486.517.0
WindowsAppRuntime.1.7       MSIX\Microsoft.WindowsAppRuntime.1.7_7000.498.2246.0_x86__8wekyb3d8bbwe    7000.498.2246.0
WindowsAppRuntime.1.7       MSIX\Microsoft.WindowsAppRuntime.1.7_7000.498.2246.0_x64__8wekyb3d8bbwe    7000.498.2246.0

After PR https://github.com/microsoft/winget-cli/pull/3391, the recommendation for these packages seemed to be to define the PackageFamilyName in the manifest and with that WinGet would not attempt the ARP correlation (which wouldn't be applicable since the MSIX don't write to ARP). The manifests for both of these packages does contain the correct PackageFamilyName yet the correlation fails

Steps to reproduce
  1. Install Microsoft.WSL or Microsoft.WindowsRuntime.1.x
  2. Do winget list
Expected behavior

The correlation succeeds with installed package mapped to the PackageId from winget source

Actual behavior

Correlation fails

Environment
Windows Package Manager (Preview) v1.11.320-preview
Copyright (c) Microsoft Corporation. All rights reserved.

Windows: Windows.Desktop v10.0.26100.4061
System Architecture: X64
Package: Microsoft.DesktopAppInstaller v1.26.320.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
Configuration Modules              %LOCALAPPDATA%\Microsoft\WinGet\Configuration\Modules

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 Enabled
InstallerHashOverride                     Enabled
LocalArchiveMalwareScanOverride           Disabled
ProxyCommandLineOptions                   Disabled
DefaultProxy                              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 issue with winget list after installing Microsoft.WSL or Microsoft.WindowsRuntime. Trace how the PackageFamilyName in the manifests is used during installed-package correlation, and verify that the installed MSIX is mapped to its winget PackageId rather than shown under its MSIX identifier.

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.