Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Uninstall needs the ability to specify --architecture #4810

Open
o-l-a-v opened this issue Sep 16, 2024 · 0 comments
Open

Uninstall needs the ability to specify --architecture #4810

o-l-a-v opened this issue Sep 16, 2024 · 0 comments
Labels
Area-Architecture Issue related to processor architecture Command-Uninstall Issue related to WinGet Uninstall Issue-Feature This is a feature request for the Windows Package Manager client.

Comments

@o-l-a-v
Copy link

o-l-a-v commented Sep 16, 2024

Description of the new feature / enhancement

Background: This actually started with me wanting to update Microsoft.DotNet.DesktopRuntime.6 x64, but WinGet would neither winget install --silent --id Microsoft.Dotnet.DesktopRuntime.6 --architecture x64 nor winget upgrade --all.

Scenario: I want to uninstall Microsoft.DotNet.DesktopRuntime.6 x64, so I can upgrade it / install the newest version.

PS > winget list Microsoft.DotNet

Name                                                   Id                                         Version Available Source
--------------------------------------------------------------------------------------------------------------------------
Microsoft ASP.NET Core 7.0.20 - Shared Framework (x64) Microsoft.DotNet.AspNetCore.7              7.0.20            winget
Microsoft Windows Desktop Runtime - 6.0.33 (x86)       Microsoft.DotNet.DesktopRuntime.6          6.0.33            winget
Microsoft Windows Desktop Runtime - 6.0.31 (x64)       Microsoft.DotNet.DesktopRuntime.6          6.0.31            winget
Microsoft Windows Desktop Runtime - 7.0.20 (x64)       Microsoft.DotNet.DesktopRuntime.7          7.0.20            winget
Microsoft Windows Desktop Runtime - 8.0.8 (x64)        Microsoft.DotNet.DesktopRuntime.8          8.0.8             winget
Microsoft .NET Framework 4.8.1 SDK                     Microsoft.DotNet.Framework.DeveloperPack_4 4.8.1             winget
Microsoft .NET SDK 8.0.206 (x64)                       Microsoft.DotNet.SDK.8                     8.0.206 8.0.401   winget
Microsoft .NET SDK 8.0.304 (x64)                       Microsoft.DotNet.SDK.8                     8.0.304           winget

PS >

I try with --architecture, winget install has it, so.

PS > winget uninstall --silent --id Microsoft.DotNet.DesktopRuntime.6 --architecture x64

Windows Package Manager v1.8.1911
Copyright (c) Microsoft Corporation. All rights reserved.

Argument name was not recognized for the current command: '--architecture'

Uninstalls the selected package, either found by searching the installed packages list or directly from a manifest. By default, the query must case-insensitively match the id, name, or moniker of the package. Other fields can be used by passing their appropriate option.

usage: winget uninstall [[-q] <query>...] [<options>]

The following command aliases are available:
  remove
  rm

The following arguments are available:
  -q,--query                  The query used to search for a package

The following options are available:
  -m,--manifest               The path to the manifest of the package
  --id                        Filter results by id
  --name                      Filter results by name
  --moniker                   Filter results by moniker
  --product-code              Filters using the product code
  -v,--version                The version to act upon
  --all,--all-versions        Uninstall all versions
  -s,--source                 Find package using the specified source
  -e,--exact                  Find package using exact match
  --scope                     Select installed package scope filter (user or machine)
  -i,--interactive            Request interactive installation; user input may be needed
  -h,--silent                 Request silent installation
  --force                     Direct run the command and continue with non security related issues
  --purge                     Deletes all files and directories in the package directory (portable)
  --preserve                  Retains all files and directories created by the package (portable)
  -o,--log                    Log location (if supported)
  --header                    Optional Windows-Package-Manager REST source HTTP header
  --authentication-mode       Specify authentication window preference (silent, silentPreferred or interactive)
  --authentication-account    Specify the account to be used for authentication
  --accept-source-agreements  Accept all source agreements during source operations
  -?,--help                   Shows help about the selected command
  --wait                      Prompts the user to press any key before exiting
  --logs,--open-logs          Open the default logs location
  --verbose,--verbose-logs    Enables verbose logging for winget
  --nowarn,--ignore-warnings  Suppresses warning outputs
  --disable-interactivity     Disable interactive prompts
  --proxy                     Set a proxy to use for this execution
  --no-proxy                  Disable the use of proxy for this execution

More help can be found at: https://aka.ms/winget-command-uninstall

PS >

Hmm, maybe uninstall will prompt me for what architecture to uninstall then?

PS > winget uninstall --silent --id Microsoft.DotNet.DesktopRuntime.6

Multiple versions of this package are installed. Either refine the search, pass the `--version` argument to select one, or pass the `--all-versions` flag to uninstall all of them.

PS >

In my case I could use version, as x86 and x64 are different versions. But they could in theory be the same version.

I ended up doing:

PS > winget uninstall --silent --id Microsoft.DotNet.DesktopRuntime.6 --all-versions

(1/2) Found Microsoft Windows Desktop Runtime - 6.0.33 (x86) [Microsoft.DotNet.DesktopRuntime.6]
Starting package uninstall...
Successfully uninstalled

(2/2) Found Microsoft Windows Desktop Runtime - 6.0.31 (x64) [Microsoft.DotNet.DesktopRuntime.6]
Starting package uninstall...
Successfully uninstalled

PS >

Reproduce

PS > winget install --silent --id Microsoft.DotNet.DesktopRuntime.6 --version 6.0.31 --architecture x64
Installs successfully.

PS > winget install --silent --id Microsoft.DotNet.DesktopRuntime.6 --version 6.0.33 --architecture x86
Installs successfully.

Now try to either upgrade or uninstall just x64.

Proposed technical implementation details

Add a --architecture switch / parameter / option to winget uninstall.

  • Like winget install and winget upgrade already have.
@o-l-a-v o-l-a-v added the Issue-Feature This is a feature request for the Windows Package Manager client. label Sep 16, 2024
@microsoft-github-policy-service microsoft-github-policy-service bot added the Needs-Triage Issue need to be triaged label Sep 16, 2024
@denelon denelon added Area-Architecture Issue related to processor architecture Command-Uninstall Issue related to WinGet Uninstall and removed Needs-Triage Issue need to be triaged labels Sep 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-Architecture Issue related to processor architecture Command-Uninstall Issue related to WinGet Uninstall Issue-Feature This is a feature request for the Windows Package Manager client.
Projects
None yet
Development

No branches or pull requests

2 participants