[WinGetUtil] ValidateManifestInstallers fails for zip installers with appx/msix NestedInstallerType
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 72/100
Línea de trabajo
Comienza en ManifestValidation.cpp alrededor de la línea 497 y compara el manejo del tipo de instalador con EffectiveInstallerType() en ManifestInstaller.h alrededor de la línea 50. Reproduce el problema con el manifiesto Microsoft.VCLibs.Desktop.14 llamando a WinGetValidateManifestV3 con InstallerValidation. Se considera terminado cuando los instaladores zip con NestedInstallerType: appx pasan sin errores de InstallerFailedToProcess, mientras la validación directa de MSIX sigue funcionando.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- C++
- Estrellas
- 26.4k
- Forks
- 1.8k
- Merge medio
- 2 d 10 h
- PR fusionados (30 d)
- 26
Preparar el entorno
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de microsoft/winget-cli
-
Issue-Docs Possible-Duplicate
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
microsoft/winget-cli#6493 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
WinGetSourceCreator: PackWithMappingFile should verify makeappx.exe exists before invoking itAbiertoIssue-Feature
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
microsoft/winget-cli#6427 ·
Los mantenedores suelen responder en 1 día
-
Issue-Docs msstore
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
microsoft/winget-cli#6331 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Command-Source Issue-Bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
microsoft/winget-cli#6148 ·
Los mantenedores suelen responder en 1 día
-
Issue-Feature
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
microsoft/winget-cli#6391 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 1 día
Todos los issues de microsoft/winget-cli
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
tesseract-ocr/tesseract#4627 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 90/100
lxqt/lxqt-panel#2492 ·
-
bug-unconfirmed
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
[models/demos/gemma4 dFlash]: _shard_argmax returns a view of a force-freed tensor when rows == 1Abiertocommunity
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
tenstorrent/tt-metal#57989 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100