Envío del manifiesto al repositorio

Después de crear un manifiesto de paquete que describa tu aplicación, estarás listo para enviar el manifiesto al repositorio del Administrador de paquetes de Windows. Se trata de un repositorio público que contiene una colección de manifiestos a los que la herramienta winget puede acceder. Para enviar tu manifiesto, cárgalo en el repositorio de código abierto https://github.com/microsoft/winget-pkgs en GitHub.

Después de enviar una solicitud de incorporación de cambios ("pull request") para agregar un nuevo manifiesto al repositorio de GitHub, un proceso automatizado validará el archivo de manifiesto y comprobará que el paquete cumpla con las directivas del Administrador de paquetes de Windows y que se sepa que no es malintencionado. Si esta validación se completa correctamente, el paquete se agregará al repositorio público del Administrador de paquetes de Windows para la herramienta cliente winget pueda detectarlo. Ten en cuenta la diferencia entre los manifiestos del repositorio de código abierto de GitHub y el repositorio público del Administrador de paquetes de Windows.

Importante

Microsoft se reserva el derecho de rechazar un envío por cualquier motivo.

Validación del manifiesto

Cuando envías un manifiesto al repositorio https://github.com/microsoft/winget-pkgs en GitHub, el manifiesto se validará y evaluará automáticamente para mantener la seguridad del ecosistema de Windows. Es posible que los manifiestos también se revisen manualmente.

Para más información, consulte la sección Proceso de validación a continuación.

Procedimiento de envío del manifiesto

Para enviar un manifiesto al repositorio, sigue estos pasos.

Paso 1: Validación del manifiesto

La herramienta winget ofrece el comando validate para confirmar que has creado el manifiesto correctamente. Para validar el manifiesto, usa este comando.

winget validate \<path-to-the-manifests>

Si se produce un error en la validación, usa los errores para buscar el número de línea y haz una corrección. Una vez que se haya validado el manifiesto, puedes enviarlo al repositorio.

Paso 2: Prueba del manifiesto con Espacio aislado de Windows

El repositorio del Administrador de paquetes de Windows incluye un script que instalará el Administrador de paquetes de Windows en un espacio aislado para probar los envíos de manifiesto. Para ejecutar el script de PowerShell, vaya al repositorio winget-pkgs. En PowerShell, escriba el comando siguiente:

powershell .\Tools\SandboxTest.ps1 manifests\m\Microsoft\VisualStudioCode\1.56.0

Es posible que tenga que actualizar este script con la ruta de acceso correcta al archivo de manifiesto: .\Tools\SandboxTest.ps1 <path to manifest or manifest folder>.

Consulte el script de prueba de espacio aislado completo en el repositorio winget-pkgs.

Paso 3: Clonación del repositorio

Para crear una bifurcación del repositorio de la comunidad del Administrador de paquetes de Windows y clonar el repositorio en la máquina local, siga estos pasos:

  1. Vaya a https://github.com/microsoft/winget-pkgs en el explorador y seleccione Bifurcar. screenshot of fork button on GitHub

  2. En el símbolo del sistema de Windows o en PowerShell, use el siguiente comando para clonar la bifurcación.

    git clone <your-fork-name>
    
  3. Si va a especificar varios envíos, cree una rama en lugar de una bifurcación. Actualmente solo se permite un archivo de manifiesto por envío.

    git checkout -b <branch-name>
    

Paso 4: Adición del manifiesto al repositorio local

Tiene que agregar los archivos de manifiesto al repositorio en la siguiente estructura de carpetas:

manifests / letter / editor / aplicación / versión

  • La carpeta manifests es la carpeta raíz de todos los manifiestos del repositorio.
  • La carpeta letter es la primera letra del nombre del editor. Por ejemplo, m del editor Microsoft.
  • La carpeta editor es el nombre de la empresa que publica el software. Por ejemplo, Microsoft.
  • La carpeta aplicación es el nombre de la aplicación o herramienta. Por ejemplo, VSCode.
  • La carpeta version es la versión de la aplicación o herramienta. Por ejemplo, 1.0.0.

Los valores PackageIdentifier y PackageVersion del manifiesto deben coincidir con el editor, los nombres de aplicación y la versión de la ruta de acceso de la carpeta del manifiesto. Para más información, consulta Creación de un manifiesto de paquete.

Paso 5: Envío del manifiesto al repositorio remoto

Ahora estás listo para enviar el nuevo manifiesto al repositorio remoto.

  1. Use el comando commit para agregar archivos, confirmar el cambio y proporcionar información sobre el envío.

    git commit -m "Submitting ContosoApp version 1.0.0" --all
    
  2. Usa el comando push para enviar los cambios al repositorio remoto.

    git push
    

Paso 6: Creación de una solicitud de incorporación de cambios

Después de insertar los cambios, vuelva a https://github.com/microsoft/winget-pkgs y cree una solicitud de incorporación de cambios para combinar su bifurcación o rama con la rama principal.

screenshot of pull request tab

Proceso de envío

Al crear una solicitud de incorporación de cambios ("pull"), se iniciará un proceso automatizado que valida los manifiestos y verifica la solicitud de incorporación de cambios ("pull"). Durante este proceso, se ejecutarán pruebas en el instalador y los archivos binarios instalados para validar el envío.

Agregamos etiquetas a su solicitud de incorporación de cambios ("pull request") para que pueda hacer un seguimiento del progreso. Para más información sobre las etiquetas y el proceso, consulte la sección Etiquetas de la solicitud de incorporación de cambios a continuación.

Una vez completado, un moderador revisará manualmente el envío y, una vez aprobado, la aplicación se agregará al catálogo del Administrador de paquetes de Windows.

Si se produce un error durante el proceso, se le notificará y nuestras etiquetas y bot le ayudarán a corregir el envío. Para obtener la lista de errores comunes, consulte la sección Proceso de validación a continuación.

Proceso de validación

Al crear una solicitud de incorporación de cambios para enviar el manifiesto al repositorio del Administrador de paquetes de Windows, se iniciará un proceso de automatización que valida el manifiesto y procesa la solicitud de incorporación de cambios. Las etiquetas de GitHub se usan para compartir el progreso y permitirle comunicarse con nosotros.

Expectativas de envío

Todos los envíos de aplicaciones al repositorio del Administrador de paquetes de Windows deben cumplir las directivas del repositorio del Administrador de paquetes de Windows.

Expectativas de envíos:

  • El manifiesto cumple los requisitos de esquemas.
  • Todas las direcciones URL del manifiesto conducen a sitios web seguros.
  • El instalador y la aplicación están libres de virus. Es posible que se identifique el paquete como malware por equivocación. Si cree que se trata de un falso positivo, puede enviar el instalador al equipo de Microsoft Defender para su análisis.
  • La aplicación se instala y desinstala correctamente tanto para administradores como para usuarios que no son administradores.
  • El instalador admite modos no interactivos.
  • Todas las entradas del manifiesto son precisas y no son engañosas.
  • El instalador viene directamente del sitio web del editor.

Para obtener una lista completa de las directivas, vea Directivas del Administrador de paquetes de Windows.

Etiquetas de la solicitud de incorporación de cambios

Durante la validación, se aplica una serie de etiquetas a las solicitudes de incorporación de cambios para comunicar el progreso. Algunas etiquetas le dirigirán a tomar medidas, mientras que otras se dirigirán al equipo de ingeniería del Administrador de paquetes de Windows.

Etiquetas de estado

En la tabla siguiente se describen las etiquetas de estado que puede encontrar.

Label Detalles
Azure-Pipeline-Passed El manifiesto ha completado el paso de prueba. Espera la aprobación. Si no se encuentra ningún problema durante el paso de prueba, se aprobará automáticamente. Si se produce un error en una prueba, se puede marcar para la revisión manual.
Blocking-Issue Esta etiqueta indica que la solicitud de incorporación de cambios ("pull") no se puede aprobar porque hay un problema de bloqueo. A menudo podrá saber cuál es el problema de bloqueo por la etiqueta de error incluida.
Needs-Attention Esta etiqueta indica que el equipo de desarrollo del Administrador de paquetes de Windows debe investigar la solicitud de incorporación de cambios ("pull"). Se debe a un error de la prueba que necesita la revisión manual o la adición de un comentario a la solicitud de incorporación de cambios ("pull") por la comunidad.
Needs-Author-Feedback Indica que hay un error en el envío. Le reasignaremos de nuevo la solicitud de incorporación de cambios ("pull"). Si no soluciona el problema en un plazo de 10 días, el bot cerrará la solicitud de incorporación de cambios ("pull"). Las etiquetas Needs-Author-Feedback se suelen agregar cuando se produce un error con la solicitud de incorporación de cambios ("pull") que se debe actualizar, o si la persona que revisa la solicitud de incorporación de cambios ("pull") tiene una pregunta.
Validation-Completed Indica que el paso de prueba se ha completado correctamente y que la solicitud de incorporación de cambios ("pull") se combinará.

Etiquetas de error

En la tabla siguiente se describen las etiquetas de error que puede encontrar. No todos los casos de error se le asignarán inmediatamente. Algunos pueden desencadenar la validación manual.

Label Detalles
Binary-Validation-Error La aplicación incluida en esta solicitud de incorporación de cambios ("pull") no pudo superar la prueba Installers Scan (Examen de los instaladores) . Esta prueba está diseñada para asegurarse de que la aplicación se instala en todos los entornos sin advertencias. Para más información sobre este error, consulte la sección Error de validación binaria a continuación.
Error-Analysis-Timeout Se ha agotado el tiempo de espera de la prueba Binary-Validation-Test. La solicitud de incorporación de cambios ("pull") se asignará a un ingeniero del Administrador de paquetes de Windows para su investigación.
Error-Hash-Mismatch No se pudo procesar el manifiesto enviado porque el hash InstallerSha256 proporcionado para InstallerURL no coincide. Actualice installerSha256 en la solicitud de incorporación de cambios ("pull") e inténtelo de nuevo.
Error-Installer-Availability El servicio de validación no pudo descargar el instalador. Puede estar relacionado con intervalos IP de Azure bloqueados o la dirección URL incorrecta del instalador. Compruebe que el elemento InstallerURL sea correcto e inténtelo de nuevo. Si cree que se ha producido un error, agregue un comentario y la solicitud de incorporación de cambios ("pull") se asignará a un ingeniero del Administrador de paquetes de Windows para su investigación.
Manifest-Installer-Validation-Error Hay incoherencias o valores que no están presentes en el manifiesto durante la evaluación de un paquete MSIX.
Manifest-Path-Error Los archivos de manifiesto deben colocarse en una estructura de carpetas específica. Esta etiqueta indica un problema con la ruta de acceso del envío. Por ejemplo, la estructura de carpetas no tiene el formato obligatorio. Actualice el manifiesto y la ruta de acceso y vuelva a enviar la solicitud de incorporación de cambios ("pull").
Manifest-Validation-Error El manifiesto enviado contiene un error de sintaxis. Solucione el problema de sintaxis del manifiesto y vuélvalo a enviar. Para obtener más información sobre el formato y el esquema del manifiesto, consulte el formato requerido.
PullRequest-Error La solicitud de incorporación de cambios ("pull") no es válida porque no todos los archivos enviados están en la carpeta manifest o hay más de un paquete o versión en la solicitud de incorporación de cambios ("pull"). Actualice la solicitud de incorporación de cambios ("pull") para solucionar el problema e inténtelo de nuevo.
URL-Validation-Error La prueba de validación de direcciones URL no pudo encontrar la dirección URL y respondió con un código de estado de error HTTP (403 o 404) o se produjo un error en la prueba de reputación de la dirección URL. Puede identificar qué dirección URL está en cuestión consultando los detalles de la comprobación de la solicitud de incorporación de cambios ("pull"). Para solucionar este problema, actualice las direcciones URL en cuestión para resolver el código de estado de error HTTP. Si el problema no se debe a un código de estado de error HTTP, puede enviar la dirección URL para su revisión a fin de evitar el error de reputación.
Validation-Defender-Error Durante las pruebas dinámicas, Microsoft Defender informó de un problema. Para reproducir este problema, instale la aplicación y, a continuación, ejecute un examen completo de Microsoft Defender. Si puede reproducir el problema, corrija el archivo binario o envíelo para su análisis a fin de obtener asistencia para falsos positivos. Si no puede reproducir el problema, agregue un comentario para que los ingenieros del Administrador de paquetes de Windows lo investiguen.
Validation-Domain La prueba ha determinado el dominio si InstallerURL no coincide con el dominio esperado. Las directivas del Administrador de paquetes de Windows requieren que InstallerUrl proceda directamente de la ubicación de la versión del ISV. Si cree que se trata de una detección falsa, agregue un comentario a la solicitud de incorporación de cambios ("pull") para que los ingenieros Administrador de paquetes de Windows la investiguen.
Validation-Error Se ha producido un error en la validación del Administrador de paquetes de Windows durante la aprobación manual. Consulte el comentario que lo acompaña para ver los pasos siguientes.
Validation-Executable-Error Durante las pruebas de instalación, la prueba no pudo encontrar la aplicación principal. Asegúrese de que la aplicación se instala correctamente en todas las plataformas. Si la aplicación no instala una aplicación, pero debe incluirse en el repositorio, agregue un comentario a la solicitud de incorporación de cambios ("pull") para que los ingenieros de Administrador de paquetes de Windows lo investiguen.
Validation-Hash-Verification-Failed Durante las pruebas de instalación, la aplicación no se puede instalar porque InstallerSha256 ya no coincide con el hash InstallerURL. Esto puede ocurrir si la aplicación está detrás de una dirección URL personal y el instalador se actualizó sin actualizar installerSha256. Para solucionar este problema, actualice la instancia de InstallerSha256 asociada a InstallerURL y envíela de nuevo.
Validation-HTTP-Error La dirección URL usada para el instalador no usa el protocolo HTTPS. Actualice installerURL para usar HTTPS y vuelva a enviar la solicitud de incorporación de cambios ("pull") .
Validation-Indirect-URL La dirección URL no viene directamente del servidor de ISV. Las pruebas han determinado que se ha usado un redirector. Esto no está permitido porque las directivas del Administrador de paquetes de Windows requieren que InstallerUrl proceda directamente de la ubicación de la versión del ISV. Quite el redireccionamiento y vuelva a enviar.
Validation-Installation-Error Se produjo un error general durante la validación manual de este paquete. Consulte el comentario que lo acompaña para ver los pasos siguientes.
Validation-Merge-Conflict Este paquete no se pudo validar debido a un conflicto de combinación. Solucione el conflicto de combinación y vuelva a enviar la solicitud de incorporación de cambios ("pull").
Validation-MSIX-Dependency El paquete MSIX tiene una dependencia del paquete que no se pudo resolver. Actualice el paquete para incluir los componentes que faltan o agregue la dependencia al archivo de manifiesto y vuelva a enviar la solicitud de incorporación de cambios ("pull").
Validation-Unapproved-URL La prueba ha determinado el dominio si InstallerURL no coincide con el dominio esperado. Las directivas del Administrador de paquetes de Windows requieren que InstallerUrl proceda directamente de la ubicación de la versión del ISV.
Validation-Unattended-Failed Durante la instalación, se ha agotado el tiempo de espera de la prueba. Lo más probable es que se deba a que la aplicación no se instala en modo silencioso. También puede deberse a que se ha encontrado otro error y se ha detenido la prueba. Compruebe que puede instalar el manifiesto sin intervención del usuario. Si necesita ayuda, agregue un comentario a la solicitud de incorporación de cambios ("pull") y los ingenieros de Administrador de paquetes de Windows lo investigarán.
Validation-Uninstall-Error Durante las pruebas de desinstalación, la aplicación no se ha limpiado completamente después de la desinstalación. Consulte el comentario que lo acompaña para ver los detalles.
Validation-VCRuntime-Dependency El paquete tiene una dependencia del tiempo de ejecución de C++ que no se pudo resolver. Actualice el paquete para incluir los componentes que faltan o agregue la dependencia al archivo de manifiesto y vuelva a enviar la solicitud de incorporación de cambios ("pull").

Etiquetas de directiva de contenido

En la tabla siguiente se enumeran las etiquetas de directiva de contenido. Si se agrega una de estas etiquetas, algún elemento de los metadatos del manifiesto desencadenó una revisión del contenido manual adicional para asegurarse de que los metadatos están siguiendo las directivas del Administrador de paquetes de Windows.

Label Detalles
Policy-Test-2.1 Consulte Requisitos generales de contenido.
Policy-Test-2.2 Consulte Contenido que incluye nombres, logotipos, contenido original y contenido de terceros
Policy-Test-2.3 Consulte Riesgo de daño.
Policy-Test-2.4 Consulte Contenido difamatorio, injurioso, calumnioso o amenazante.
Policy-Test-2.5 Consulte Contenido ofensivo.
Policy-Test-2.6 Consulte Alcohol, tabaco, armas y drogas.
Policy-Test-2.7 Consulte Contenido para adultos.
Policy-Test-2.8 Consulte 11.8 Actividad ilegal.
Policy-Test-2.9 Consulte Blasfemias excesivas y contenido inapropiado.
Policy-Test-2.10 Consulte Requisitos específicos de país o región.
Policy-Test-2.11 Consulte Clasificación por edades.
Policy-Test-2.12 Consulte Contenido generado por el usuario.

Etiquetas internas

En la tabla siguiente se enumeran las etiquetas de error internas. Cuando se producen errores internos, la solicitud de incorporación de cambios ("pull") se asignará a los ingenieros del Administrador de paquetes de Windows para que lo investigue.

Label Detalles
Internal-Error-Domain Se produjo un error durante la validación del dominio de la dirección URL.
Internal-Error-Dynamic-Scan Se produjo un error durante la validación de los archivos binarios instalados.
Internal-Error-Keyword-Policy Se produjo un error durante la validación del manifiesto.
Internal-Error-Manifest Se produjo un error durante la validación del manifiesto.
Internal-Error-NoArchitectures Se produjo un error porque la prueba no pudo determinar la arquitectura de la aplicación.
Internal-Error-NoSupportedArchitectures Se produjo un error porque no se admite la arquitectura actual.
Internal-Error-PR Se produjo un error al procesar la solicitud de incorporación de cambios ("pull").
Internal-Error-Static-Scan Se produjo un error durante el análisis estático de los instaladores.
Internal-Error-URL Se produjo un error al validar la reputación de los instaladores.
Internal-Error Se encontró un error genérico o un error desconocido durante el paso de prueba.

Error de validación binaria

Si la validación de las solicitudes de incorporación de cambios no supera la prueba de Installers Scan con la etiqueta Binary-Validation-Error, significa que la aplicación no se pudo instalar en todos los entornos.

Prueba de Installers Scan

Para proporcionar una excelente experiencia de usuario de instalación de aplicaciones, el Administrador de paquetes de Windows debe asegurarse de que todas las aplicaciones se instalen en equipos sin errores, independientemente del entorno. Una prueba clave es asegurarse de que todas las aplicaciones se instalan sin advertencias en varias configuraciones de antivirus populares. Windows proporciona el programa antivirus integrado Microsoft Defender, pero muchos clientes y usuarios empresariales usan otro software antivirus.

Cada envío al repositorio del Administrador de paquetes de Windows se ejecuta a través de varios programas antivirus. Todos estos programas tienen algoritmos de detección de virus diferentes para identificar aplicaciones potencialmente no deseadas (PUA) y malware.

Errores de validación binaria de direcciones

Si se produce un error en la validación de una aplicación, Microsoft intentará primero comprobar con el proveedor del antivirus que el software marcado no es un falso positivo. En muchos casos, después de la notificación y validación, el proveedor del antivirus actualiza su algoritmo y la aplicación supera la prueba.

En algunos casos, el proveedor del antivirus no puede determinar si la anomalía de código detectada es un falso positivo. En este caso, la aplicación no se puede agregar al repositorio del Administrador de paquetes de Windows. La solicitud de incorporación de cambios ("pull request") se rechaza con una etiqueta Binary-Validation-Error.

Si recibe una etiqueta Binary-Validation-Error en la solicitud de incorporación de cambios ("pull request"), actualice el software para quitar el código detectado como PUA.

En ocasiones, las herramientas originales usadas para la depuración y las actividades de bajo nivel aparecen como PUA para el software antivirus. Esto se debe a que el código de depuración necesario tiene una firma similar a la del software no deseado. Aunque esta práctica de escritura de código es legítima, el repositorio del Administrador de paquetes de Windows desafortunadamente no puede permitir estas aplicaciones.

Solución de problemas de envío

Si se produce un error en el envío del Administrador de paquetes de Windows, puede usar las etiquetas descritas anteriormente para investigar el motivo del error.

Para investigar los errores en las solicitudes de incorporación de cambios ("pull request"), siga estos pasos:

  1. Aparece un error de solicitud de incorporación de cambios ("pull request") en la parte inferior de la página web con la cadena Algunas comprobaciones no se realizaron correctamente. Seleccione el vínculo Detalles situado junto a una validación errónea para ir a la página de Azure Pipelines.

    Screenshot of a pull request failure.

  2. En la página de Azure Pipelines, seleccione el vínculo 0 errores/0 advertencias.

    Screenshot of the Azure Pipelines page.

  3. En la página siguiente, seleccione el trabajo con errores.

    Screenshot of the error details.

  4. En la página siguiente se muestra la salida del trabajo con errores. La salida debería ayudarlo a identificar el cambio que necesita aplicar para corregir el manifiesto.

    En el ejemplo siguiente, el error se producía durante la tarea Installation Validation.

    Screenshot of the failed job output.