winget-cli icon indicating copy to clipboard operation
winget-cli copied to clipboard

Add option to show install technology in winget search

Open Neme12 opened this issue 1 month ago • 8 comments

Relevant area(s)

WinGet CLI

Description of the new feature / enhancement

When using the "winget search" command, please add an option to show a column that shows the package installation technology, or technologies available. Ideally also in settings to show this always. I would appreciate this as I care about primarily installing msix packages due to all their benefits like isolation and clean uninstall, compared to legacy installation technologies. It would help to see them overall and especially when multiple versions or variations of an app are available, to help me make an informed choice as to which to install and as to what the installation is actually going to do (e.g. open an msix, just extract a zip (portable) vs execute an arbitrary exe, which carries a much greater risk).

Proposed technical implementation details

No response

Neme12 avatar Nov 02 '25 12:11 Neme12

I'm looking and agree, because all the Source column says is winget or nothing at all. So the column seem useless.

eabase avatar Nov 14 '25 10:11 eabase

I'm looking and agree, because all the Source column says is winget or nothing at all. So the column seem useless.

The source column becomes more useful when "more" sources are available in WinGet. If WinGet is used to install some of the store packages, they show up in the "msstore" source. The same is true for other "private" REST sources in enterprise scenarios.

denelon avatar Nov 14 '25 21:11 denelon

WinGet defaults to preferred installer types for a "clean" install, and defaults to the corresponding installer type for upgrade.

Without user intervention, WinGet prefers:

  • MSIX
  • MSI
  • exe based installer (nullsoft, inno, exe, etc)
  • portable

[!TIP] Using WinGet show, you can see the installer type and installer URL selected by WinGet for the "install" flow. This flow supports the "--installer-type" argument as well as any WinGet settings that would impact installer type selection.

denelon avatar Nov 14 '25 21:11 denelon

@denelon

Hi Demitrius, I'm not sure what you mean with:

Without user intervention, WinGet prefers ...

Is that the list of things that can be shown? What exactly can show up in that column?

For example (in issue #5878), I have:

#  winget show -e 'osquery.osquery'

Found osquery [osquery.osquery]
Version: 5.20.0
Publisher: osquery
Publisher Url: https://www.osquery.io/
Publisher Support Url: https://github.com/osquery/osquery/issues
Description: SQL powered operating system instrumentation, monitoring, and analytics.
Homepage: https://osquery.io/
License: Apache-2.0 OR GPL-2.0-only
License Url: https://github.com/osquery/osquery/blob/HEAD/LICENSE
Release Notes:
  What's Changed
  Features/Bugs
  - Add default path for CA certificate bundle on openSUSE by @iko1 in #8687
  - Exclude config views from db migration by @Micah-Kolide in #8678
  - Make vscode_extensions more consistently report UUID by @zwass in #8693
  - Don't overwrite hardware_version if it has a value by @sbrito85 in #8690
  - Support nvm on npm_packages table by @dantecatalfamo in #8694
  - Add scoped npm package support in npm_packages table by @lichao127 in #8686
  Dependencies
  - Fix build against libaudit >=4.1.1 by removing set_aumessage_mode call by @Blarse in #8676
  - libs: libarchive: 3.7.9 -> 3.8.1 by @LeSuisse in #8642
  Documentation
  - Fix SQL examples for system_profiler table by @zwass in #8699
  - Add more informative descriptions for mounts.blocks_free and mounts.blocks_available by @jacobshandling in #8701
  - Update dns_resolvers documentation to point to interface_details on Windows by @zwass in #8682
  New Contributors
  - @frankgraziano made their first contribution in #8681
  - @Blarse made their first contribution in #8676
  - @jacobshandling made their first contribution in #8701
  Full Changelog: 5.19.0...5.20.0
Release Notes Url: https://github.com/osquery/osquery/releases/tag/5.20.0
Tags:
  hacktoberfest
  intrusion-detection
  monitoring
  security
  sql
Installer:
  Installer Type: wix
  Installer Locale: en-US
  Installer Url: https://github.com/osquery/osquery/releases/download/5.20.0/osquery-5.20.0.msi
  Installer SHA256: 68bc735b82aeb7af8660a770b6626be2adba5403e8112c62bab254ba5b917960
  Release Date: 2025-10-24
  Offline Distribution Supported: true

As you can see, the Installer Type is wix and the Installer Url shows as msi, but I only get it to show up as winget, so what is it supposed to show?

Then if winget is a generic type, for any of the ones you listed, then what's the purpose (or use case)?

(It also brings up the bug/question, on why winget show shows results of packages that have not been installed? See: #5885)

eabase avatar Nov 16 '25 22:11 eabase

denelon

WinGet defaults to preferred installer types for a "clean" install, and defaults to the corresponding installer type for upgrade.

Without user intervention, WinGet prefers:

  • MSIX
  • MSI
  • exe based installer (nullsoft, inno, exe, etc)
  • portable

Yes, I understand that it defaults to the first available preferred installer type, which is very useful. But how is that relevant here? My preferred installer type might not be available for every package. My ask is to show that installer type (or possibly all available installer types in the order of preference) when using "winget search", not "winget show".

Neme12 avatar Nov 18 '25 19:11 Neme12

Yeah, this is getting silly. It's not the first issue here that shows totally irrelevant info... (What is the use of a package manager if it only shows you what MS feel looks good?)

eabase avatar Dec 05 '25 22:12 eabase

@eabase Can you clarify? What was irrelevant in my issue? If anything, I'd say your comment about installer preference and a completely separate issue is what's irrelevant here.

Neme12 avatar Dec 05 '25 23:12 Neme12

@Neme12 No, you misunderstood. I agree with you. I filed other issues here, that I vaguely referrerd to, that also had kind of backward logic. (E.g. winget show defaulting to show info on not installed packages...)

eabase avatar Dec 08 '25 05:12 eabase