microsoft / microsoft/winget-create

Zip files with same Relative File Path but different Aliases are combined across Installers

Open
#660 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Issue-Bug
Dominant language
C#
Stars
651
Forks
114
Avg merge
7h 52m
Merged PRs (30d)
3

Description

Brief description of your issue

The latest manifest for Microsoft.DSC has an x64 portable zip installer and an arm64 portable zip installer. Both reference the same relative file path for the executable, but the portable command alias is different. When running wingetcreate update the entries get combined causing validation to fail

... (x64)
  NestedInstallerFiles:
  - RelativeFilePath: dsc.exe
    PortableCommandAlias: dsc
... (arm64)
  NestedInstallerFiles:
  - RelativeFilePath: dsc.exe
    PortableCommandAlias: dscarm64

Result after wingetcreate update:

... (x64)
  NestedInstallerFiles:
  - RelativeFilePath: dsc.exe
    PortableCommandAlias: dsc
  - RelativeFilePath: dsc.exe
    PortableCommandAlias: dscarm64
... (arm64)
  NestedInstallerFiles:
  - RelativeFilePath: dsc.exe
    PortableCommandAlias: dsc
  - RelativeFilePath: dsc.exe
    PortableCommandAlias: dscarm64
Steps to reproduce
wingetcreate update Microsoft.DSC --version 3.2.0 --urls 'https://github.com/PowerShell/DSC/releases/download/v3.2.0/DSC-3.2.0-x86_64-pc-windows-msvc.zip' 'https://github.com/PowerShell/DSC/releases/download/v3.2.0/DSC-3.2.0-aarch64-pc-windows-msvc.zip' 'https://github.com/PowerShell/DSC/releases/download/v3.2.0/DSC-3.2.0-Win.msixbundle'
Expected behavior

Entries would be preserved per installer node

Actual behavior

Entries are combined

Environment
Windows Package Manager Manifest Creator v1.12.8.0
Copyright (c) Microsoft Corporation. All rights reserved.

Operating System: Microsoft Windows NT 10.0.26200.0
System Architecture: X64

Winget-Create Directories  Path                                                                                                           
------------------------------------------------------------------------------------------------------------------------------------------
Logs                       %LOCALAPPDATA%\Packages\Microsoft.WindowsPackageManagerManifestCreator_8wekyb3d8bbwe\LocalState\DiagOutputDir  
User settings              %LOCALAPPDATA%\Packages\Microsoft.WindowsPackageManagerManifestCreator_8wekyb3d8bbwe\LocalState\settings.json  
Installer cache            %TEMP%\wingetcreate

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

Reproduce the issue with the provided wingetcreate update command and inspect how NestedInstallerFiles entries are grouped across the x64 and arm64 installer nodes. Verify that entries sharing a relative path but having different aliases remain within their original installer node, then confirm manifest validation succeeds.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
cli
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
58/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.