[WinGetUtil] ValidateManifestInstallers fails for zip installers with appx/msix NestedInstallerType
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 72/100
Direzione di ricerca
Inizia in ManifestValidation.cpp intorno alla riga 497 e confronta la gestione del tipo di installer con EffectiveInstallerType() in ManifestInstaller.h intorno alla riga 50. Riproduci il problema con il manifest Microsoft.VCLibs.Desktop.14 chiamando WinGetValidateManifestV3 con InstallerValidation. Il lavoro è completato quando gli installer zip con NestedInstallerType: appx passano senza errori InstallerFailedToProcess, mentre la convalida diretta di MSIX continua a funzionare.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
ValidateManifestInstallers() in ManifestValidation.cpp incorrectly attempts MSIX validation on zip installers that contain nested appx/msix packages. The function uses installer.EffectiveInstallerType() to determine whether to run MsixManifestValidation::Validate(), but for zip installers EffectiveInstallerType() returns the NestedInstallerType (appx → InstallerTypeEnum::Msix), causing it to try opening the raw zip URL as an MSIX package.
Expected Behavior
Manifests with InstallerType: zip and NestedInstallerType: appx should pass ValidateManifestInstallers() without error. The MSIX validation should not attempt to open a zip archive URL as an MSIX package.
Actual Behavior
MsixManifestValidation::Validate() calls GetMsixInfo(installer.Url) on the zip URL. Since the URL points to a .zip archive (not an .appx/.msix file), GetMsixInfo() returns nullptr, and the error InstallerFailedToProcess is emitted for every installer entry:
Failed to process installer. [InstallerUrl] Value: https://github.com/microsoft/winget-cli/releases/download/v1.9.25180/DesktopAppInstaller_Dependencies.zip
The error repeats once per architecture (e.g., 4 times for x64/x86/arm/arm64).
Steps to Reproduce
- Use a manifest with
InstallerType: zipandNestedInstallerType: appx(e.g.,Microsoft.VCLibs.Desktop.14v14.0.33728.0 frommicrosoft/winget-pkgs) - Call
WinGetValidateManifestV3withWinGetValidateManifestOptionV2::InstallerValidation - Observe
InstallerValidationFailureresult with "Failed to process installer" messages
Environment
- Manifests:
Microsoft.VCLibs.Desktop.14v14.0.33728.0,Microsoft.VCLibs.14v14.0.33519.0 - These manifests exist in production
microsoft/winget-pkgs
Additional Context
The issue is in ManifestValidation.cpp line ~497:
if (installer.EffectiveInstallerType() == InstallerTypeEnum::Msix)
{
auto installerErrors = msixManifestValidation.Validate(manifest, installer);
}
EffectiveInstallerType() returns NestedInstallerType for archive types (ManifestInstaller.h line ~50). This check should also verify !IsArchiveType(installer.BaseInstallerType) before running MSIX validation.
🏴☠️ This report was assembled by the Straw Hat crew's AI navigator. While we've sailed these waters carefully, the seas are unpredictable — details should be verified by the maintainers.
- Lingua principale
- C++
- Stelle
- 26.4k
- Fork
- 1.8k
- Merge medio
- 2g 15h
- PR unite (30g)
- 19
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di microsoft/winget-cli
-
Issue-Docs Possible-Duplicate
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
microsoft/winget-cli#6493 · 1 commento ·
-
WinGetSourceCreator: PackWithMappingFile should verify makeappx.exe exists before invoking it ApertaIssue-Feature
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
microsoft/winget-cli#6427 ·
-
Issue-Docs msstore
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
microsoft/winget-cli#6331 · 1 commento ·
-
Command-Source Issue-Bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
microsoft/winget-cli#6148 ·
-
Issue-Feature
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
microsoft/winget-cli#6391 · 1 commento · 1 reazione ·
Tutte le issue di microsoft/winget-cli
Issue simili
-
ai_reviewed
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
ydb-platform/ydb#53869 · 3 commenti ·
-
bug cert blocker needs triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
project-chip/connectedhomeip#74373 ·
-
[request] tracy/0.14.1 Apertaupstream update
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
conan-io/conan-center-index#31035 ·
-
Bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
-
documentation
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
vllm-project/vllm-ascend#17329 ·