WinAppCLI: La herramienta CLI para el desarrollo rápido de aplicaciones de Windows

WinAppCLI: La herramienta CLI para el desarrollo rápido de aplicaciones de Windows

Construye, empaqueta y despliega aplicaciones de Windows desde la terminal con una interfaz de línea de comandos unificada y única.


Por qué WinAppCLI?

Los marcos modernos multiplataforma (Electron, .NET, C++, Rust, Tauri…) ofrecen excelentes experiencias de usuario, pero el despliegue para Windows sigue siendo percibido como un proceso separado y propenso a errores. Necesitarás:

  • Instalar y administrar el conjunto completo de herramientas del SDK de Windows y del SDK de Aplicación de Windows.
  • Generar archivos AppxManifest.xml que codifiquen la identidad, las capacidades y la información de accesos directos.
  • Crear y mantener certificados de desarrollo.
  • Empaquetar tu aplicación como MSIX o EXE.
  • Firmar binarios, configurar números de versión y configurar metadatos listos para la Tienda.

Realizar cada una de estas tareas manualmente resulta tedioso y propenso a errores. WinAppCLI consolida estas tareas en un proyecto pequeño, bien mantenido y de código abierto.

  • Una herramienta para múltiples marcos – Electron, .NET, C++, Rust, Tauri.
  • Instalación sin fricción del SDK – descarga automáticamente el SDK más reciente de Windows y del SDK de Aplicación.
  • Identidad instantánea de aplicación – añade identidades temporales para depuración sin empaquetado completo.
  • Generación rápida y reproducible de MSIX – listo para pipelines CI/CD.
  • Código abierto – con licencia MIT y totalmente auditable.

Quick Start

1. Install WinAppCLI

Plataforma Comando
Windows (a través de WinGet) winget install Microsoft.winappcli --source winget
Node / Electron npm install @microsoft/winappcli --save-dev
Entornos de CI Usa la acción de GitHub Actions setup‑WinAppCli o instala vía winget en el runner

Para el desarrollo local también puedes descargar la última versión desde la página de lanzamientos de GitHub.

2. Verify the installation

winapp --help

Deberías ver un menú de ayuda con comandos como init, package, cert y manifest.

3. Initialize a project

# En un proyecto Electron nuevo o existente
winapp init

Esto descarga los SDK necesarios, crea marcadores de posición para los certificados y escribe un winapp.example.yaml (puedes renombrarlo a winapp.yaml).


Core Commands Overview

Comando Propósito
init Inicializa SDKs y genera la estructura para manifiestos e identidad
restore Restaura paquetes de SDK y dependencias
update Actualiza los SDK a las versiones más recientes
package Construye un paquete MSIX o EXE desde un directorio fuente
create-debug-identity Añade una identidad de aplicación temporal para depuración
manifest Genera o actualiza AppxManifest.xml
cert Crea o actualiza un certificado de desarrollo
sign Firma un MSIX o EXE con el certificado especificado
tool Expone herramientas de línea de comandos del SDK de Windows
node create-addon Genera complementos C# o C++ para Electron
node add-electron-debug-identity Añade identidad de depuración a procesos de Electron

Una referencia completa está disponible en los documentos oficiales.


Sample Projects

El repositorio contiene una colección de muestras listas para ejecutar que muestran un uso práctico en múltiples pilas. Cada muestra incluye un winapp.yaml y una breve README.

  • Electron – Utiliza Electron Forge, un complemento nativo de C++ y un módulo C#.
  • Electron WinML – Demuestra clasificación de imágenes con Windows ML.
  • C++ (Win32) – Una aplicación puramente en C++ construida con CMake.
  • .NET Console – Presenta el envoltorio .NET WinAppSDK.
  • WPF – Una UI clásica de Windows Presentation Foundation.
  • Rust – Utiliza la crate windows‑rs para APIs nativas.
  • Tauri – Un backend en Rust que impulsa un frontend multiplataforma.

Ejecutar una muestra es tan simple como:

cd samples/electron
npm install
npx winapp init
npx winapp package

El directorio dist resultante contiene una aplicación empaquetada como MSIX lista para la carga externa o la entrega a la Tienda.


CI/CD Integration

WinAppCLI está diseñado para integrarse sin problemas en los pipelines modernos.

GitHub Actions

- name: Setup WinAppCLI
  uses: microsoft/setup-winappcli@v1

- name: Build and Sign
  run: |
    winapp init
    winapp package
    winapp sign --certificate myCert.pfx --password ${{ secrets.CERT_PASSWORD }}

Azure DevOps

Agrega la tarea oficial setup-WinAppCli a tu pipeline o instálala vía winget en el agente.

El CLI expone variables de entorno (por ejemplo, WINAPP_SDK_PATH) que te permiten referenciar SDKs instalados en otras herramientas.


Common Challenges & Troubleshooting

Síntoma Causa probable Solución
winapp: unrecognized command CLI no está en PATH Verifica la instalación, vuelve a ejecutar winget install o npm y agrega node_modules/.bin al PATH
Signing fails with The certificate was not found Ruta de certificado incorrecta o contraseña Proporciona la ruta completa con la bandera --certificate, usa --password o la variable de entorno WINAPP_CERT_PASSWORD
App identity conflicts between Electron and .NET builds Identidad duplicada en winapp.yaml Elimina o renombra las entradas de identidad conflictivas
MSIX install fails with signature is missing Certificado no confiable Instala el certificado de desarrollo en los Trusted Root Certification Authorities de la máquina de prueba
---

Contributing

WinAppCLI es un proyecto de código abierto bajo la licencia MIT. Siéntete libre de:

  1. Abrir incidencias – informes de errores, ideas de características o preguntas de uso.
  2. Enviar pull requests – correcciones, mejoras o nuevos enlaces de idioma.
  3. Contribuir con muestras – agregar soporte para otro marco o sistema de compilación.

Todos los colaboradores deben firmar el Acuerdo de Licencia de Contribuidores de Microsoft. Consulta el CONTRIBUTING.md para más información.


Final Thoughts

WinAppCLI convierte la ardua tarea de empaquetado de aplicaciones de Windows en un proceso repetible y automatizable. Ya sea que seas un desarrollador de Electron que busque añadir funciones nativas de Windows, un desarrollador .NET que desee un empaquetado MSIX rápido, o un ingeniero CI que necesite pasos de compilación confiables, esta CLI es una adición poderosa a tu conjunto de herramientas.

Pruébala: instálala mediante WinGet o NPM, prueba una muestra y haznos saber tu opinión. Con contribuciones comunitarias y una hoja de ruta respaldada por Microsoft, WinAppCLI está lista para convertirse en el estándar de facto del desarrollo de aplicaciones de Windows en la era multiplataforma.

Artículo original: Ver original

Compartir este artículo