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:
- Abrir incidencias – informes de errores, ideas de características o preguntas de uso.
- Enviar pull requests – correcciones, mejoras o nuevos enlaces de idioma.
- 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.