microsoft / microsoft/winget-cli

try to upgrade vc redist and desktop runtime x86, upgrades x64 instead

Open
#2,427 8 comments 2 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

I've been trying to get all my packages up to date using winget, and for the most part it works, but there are two x86 packages that every time I try to upgrade them, it starts download the (already upgraded) x64 version instead.

  • Microsoft Visual C++ 2013 Redistributable (x86) - 12.0.30501 Microsoft.VC++2013Redist-x64
  • Microsoft Windows Desktop Runtime - 3.1.25 (x86) Microsoft.DotNet.DesktopRuntime.3_1

It seems that somehow the id for the x64 version has been associated with the name of the x86 version.

I suspect this is similar to the bug #1413 but I am not sure how to fix it.

Steps to reproduce
  1. List upgrades.
winget upgrade

Shows:

Name                                                         Id                                  Version      Available     Source
----------------------------------------------------------------------------------------------------------------------------------
Microsoft Windows Desktop Runtime - 3.1.25 (x86)             Microsoft.DotNet.DesktopRuntime.3_1 3.1.25       3.1.27        winget
Microsoft Visual C++ 2013 Redistributable (x86) - 12.0.30501 Microsoft.VC++2013Redist-x64        12.0.30501.0 12.0.40664.0  winget
  1. Try to upgrade
winget upgrade --verbose-logs "Microsoft Visual C++ 2013 Redistributable (x86) - 12.0.30501"

Instead does the following:

Found Microsoft Visual C++ 2013 Redistributable (x64) [Microsoft.VC++2013Redist-x64] Version 12.0.40664.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.
Downloading https://download.visualstudio.microsoft.com/download/pr/10912041/cee5d6bca2ddbcd039da727bf4acb48a/vcredist_x64.exe
Expected behavior

I expect the x86 version to be downloaded and upgraded.

Actual behavior

The x64 version is re-downloaded (even though it is already installed) and the x86 version remains in the list of non-upgraded packages.

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

Windows: Windows.Desktop v10.0.22621.317
System Architecture: X64
Package: Microsoft.DesktopAppInstaller v1.18.2091.0

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 the reported winget upgrade commands and the two package IDs, using the shown verbose output to compare x86 and x64 selection. Done means the x86 Visual C++ and Windows Desktop Runtime packages are selected and upgraded, while the already-installed x64 package is not downloaded again.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, powershell
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.