CLI de desarrollo de aplicaciones de Windows (CLI de winapp)

Importante

La CLI de desarrollo de Aplicación de Windows se encuentra actualmente en public preview. Las características y comandos pueden cambiar antes de la versión final. Comparta sus comentarios creando una incidencia.

La CLI de desarrollo de Aplicación de Windows (CLI de winapp) es una herramienta de línea de comandos para compilar aplicaciones Windows con el marco que elija. Funciona desde un terminal, el editor que prefiera o un agente de codificación de IA.

  • Aplicaciones winUI: crear, ejecutar, depurar, probar y empaquetar aplicaciones WinUI sin abrir Visual Studio.
  • Multiplataforma y otros marcos de trabajo: incorpore características de Windows a su aplicación Electron, Flutter, Tauri, Rust, .NET o C++ existente sin cambiar los marcos de trabajo. La CLI de winapp configura el SDK para aplicaciones de Windows y SDK de Windows, proporciona la identidad del paquete de la aplicación para que pueda llamar a las API como las notificaciones y la IA en el dispositivo, y la empaqueta como MSIX para Microsoft Store o su propia distribución.

Ventajas clave de la CLI de winapp

Icono de símbolo del sistema en un mosaico elevado sobre una onda de píxeles azul

Cree y ejecute aplicaciones WinUI desde el terminal
winapp new crea una aplicación WinUI a partir de las plantillas oficiales, incluidas las plantillas iniciales en blanco, NavigationView, TabView y MVVM. winapp runcompila el proyecto, instala el Aplicación de Windows Runtime coincidente e inicia la aplicación, ya sea empaquetada o desempaquetada.
Crea tu primera aplicación WinUI

Icono de insecto sobre un mosaico elevado sobre una banda diagonal de píxeles azules

Depuración con diagnósticos de bloqueo e identidad de paquete
Ejecute la aplicación con identidad de paquete para que pueda probar las notificaciones, la inteligencia artificial en el dispositivo y otras API que requieren identidad. Agregue --debug-output para capturar mensajes de depuración y volcados de memoria. Para bloqueos de WinUI, winapp descodifica excepciones almacenadas para indicarle el controlador de eventos XAML que ha fallado.
Depuración con identidad de paquete

Una burbuja de chat con un icono de destellos en un recuadro elevado sobre una onda de píxeles azul

Agentes de IA para programar basados en código WinUI real
winapp find-uidevuelve xaml y C# en funcionamiento desde la Galería de WinUI 3 y Windows Community Toolkit. winapp find-apiinspecciona las API de Windows Runtime a las que hace referencia el proyecto. Los agentes los usan para generar código a partir de muestras reales y metadatos en lugar de adivinar.
Usa la CLI de winapp con agentes de IA

Un puntero y un icono táctil en una baldosa elevada sobre una banda diagonal de píxeles azules

Automatiza y prueba la interfaz de usuario de tu aplicación
winapp ui inspecciona e interactúa con aplicaciones en ejecución a través de Automatización de la interfaz de usuario y captura capturas de pantalla y grabaciones. Ejecute la aplicación en Windows Sandbox para probarla en un entorno limpio.
Automatización de la interfaz de usuario

Icono de paquete en una baldosa elevada sobre una onda de píxeles azul

Empaqueta, firma y envía
winapp pack compila el proyecto, lo empaqueta como MSIX y lo firma en un paso. Genere certificados de desarrollo localmente, firme las compilaciones de versión con Firma de confianza de Azure e instale la CLI de Winapp en Acciones de GitHub o ejecutores de Azure DevOps.
Empaqueta tu aplicación

Icono de pieza de rompecabezas en una baldosa elevada sobre una banda diagonal de píxeles azules

Lleve las características de Windows a cualquier marco
Agregue el SDK de Windows y SDK de Aplicaciones para Windows, la identidad del paquete y el empaquetado MSIX a las aplicaciones compiladas con .NET, C++, Electron, Flutter, Rust o Tauri, sin cambiar el sistema de compilación.
Ver los frameworks compatibles

Introducción a WinUI

Después de instalar la CLI de Winapp y el SDK de .NET, cree y ejecute una aplicación winUI:

winapp new --name MyWinUIApp --template winui-navview --use-defaults
cd MyWinUIApp
winapp run

Cuando esté listo para probar un paquete localmente, genere un certificado de desarrollo y cree un paquete MSIX firmado:

winapp cert generate --manifest ./Package.appxmanifest
winapp pack ./MyWinUIApp.csproj -c Release --cert ./devcert.pfx

El certificado de desarrollo usa una contraseña predeterminada y es solo para pruebas locales. Antes de distribuir la aplicación, fírmela con un certificado de confianza, por ejemplo, con winapp az-sign. Para obtener más información, consulte Seguridad.

Para ver un tutorial paso a paso que incluye la configuración y el primer cambio de interfaz de usuario, consulte Crear la primera aplicación de WinUI. Para ver todas las plantillas disponibles, ejecute winapp new --list. Para obtener el flujo de trabajo completo, incluida la depuración, la automatización de la interfaz de usuario y el empaquetado, consulte Uso de la CLI de winapp con WinUI.

Installation

WinGet

La manera más fácil de instalar la CLI es a través de WinGet (Windows Administrador de paquetes):

winget install Microsoft.winappcli --source winget

Si usa el módulo de PowerShell WinGet, ejecute Install-WinGetPackage Microsoft.winappcli en su lugar.

NPM

Para proyectos de Electron, instale mediante NPM.

npm install @microsoft/winappcli --save-dev

Acciones de GitHub/Azure DevOps

Para los flujos de trabajo de CI/CD, utiliza la acción setup-WinAppCli para instalar automáticamente la CLI en tus ejecutores/agentes.

Descarga manual

Descargue la compilación más reciente de GitHub Releases.

Comprobación de la instalación

Una vez instalado, compruebe la instalación llamando a la CLI:

winapp --help

O bien, si usa Electron/Node.js:

npx winapp --help

Usa la CLI de winapp con agentes de IA

La CLI de winapp está diseñada para funcionar bien con agentes de codificación de IA. Comandos como find-ui y find-api devuelven una salida legible por máquina con --json, por lo que un agente puede buscar ejemplos reales de WinUI y Windows Runtime API antes de escribir código.

Instale el complemento winapp para dotar a su agente de capacidades para el flujo de trabajo de la CLI de Winapp:

# GitHub Copilot CLI
copilot plugin install microsoft/WinAppCli

# Claude Code
claude plugin marketplace add microsoft/WinAppCli
claude plugin install winappcli@winappcli

Si trabaja en Visual Studio Code, la extensión winApp VS Code ejecuta comandos de la CLI de Winapp desde el editor e inicia la aplicación con la identidad del paquete al presionar F5. Instálelo desde Visual Studio Marketplace.

Marcos admitidos

La CLI de winapp funciona con WinUI y otros marcos de trabajo de aplicaciones:

Marco de referencia Guía
WinUI Introducción a WinUI
.NET/WPF/WinForms Comienza con .NET
.NET MAUI Introducción a .NET MAUI
C++ (CMake) Empieza con C++
Electrón Comienza con Electron
Óxido Comienza con Rust
Tauri Comienza con Tauri
Flutter Empieza con Flutter

Guías adicionales:

  • Empaquetado de una EXE/CLI: guía paso a paso para empaquetar un EXE/CLI existente como MSIX
  • Empaquetado disperso: asigne a una aplicación sin empaquetar una identidad de paquete de aplicación con un MSIX de solo identidad (disperso) y contenido externo
  • Autocompletado de shell: habilita el autocompletado con la tecla Tab para comandos, opciones y valores en PowerShell, bash, zsh y fish
  • Guía de seguridad: qué certificados de desarrollo y modo de desarrollador cambian en la máquina, cómo controlar devcert.pfxy cómo firmar para producción

Introducción a los comandos

Categoría Commands
Crear y configurar nuevo, iniciar, restaurar, actualizar
Ejecutar y depurar run, create-debug-identity, embed-identity, unregister
Embalaje empaquetar
Manifiestos manifest generate, manifest update-assets, manifest add-alias
Certificados y firma cert generate, cert install, sign, az-sign, create-external-catalog
Búsqueda de código para agentes find-ui, find-api
Automatización de la interfaz de usuario y Sandbox ui, destino
Utilities tool, store, get-winapp-path, complete
Node.js/Electron node create-addon, node generate-bindings, node add-electron-debug-identity, node clear-electron-debug-identity

Para obtener la referencia completa de la CLI, consulte Referencia de la CLI.

Samples

La carpeta samples de GitHub tiene un proyecto ejecutable para cada marco compatible:

Ejemplo Description
Aplicación WinUI Aplicación WinUI empaquetada registrada e iniciada con winapp run
Aplicación WinUI no empaquetada Aplicación WinUI sin empaquetar iniciada con winapp run
Solución WinUI Solución de varios proyectos (proyecto de aplicación y proyecto de prueba) que muestra cómo winapp run selecciona el proyecto de aplicación
Aplicación WinUI de C++ Ventana WinUI creada en C++ con CMake, sin XAML o MSBuild
aplicación de WPF aplicación de escritorio WPF
aplicación de .NET MAUI .NET MAUI Windows proyecto empaquetado y firmado con la CLI de Winapp
Aplicación de C++ Aplicación Win32 nativa de C++ compilada con CMake
Electrón Aplicación Electron Forge con un manifiesto, recursos y complementos nativos de C++ y C#
Aplicación Rust Aplicación Rust que llama a las API de Windows
Aplicación Tauri Aplicación Tauri con un back-end de Rust
Aplicación Flutter Aplicación de escritorio flutter con la identidad del paquete y el SDK de Aplicaciones para Windows
Aplicación Sparse aplicación WPF con empaquetado disperso (MSIX de solo identidad) y un instalador

¿Por qué la identidad del paquete?

Muchas Windows API requieren que la aplicación tenga la identidad del paquete. Gracias a la identidad, tu aplicación obtiene acceso a funciones como las notificaciones, la integración del sistema operativo y la inteligencia artificial en el dispositivo. Las plantillas de aplicación winUI incluyen un manifiesto de paquete, por lo que winapp run les proporciona la identidad de forma predeterminada. Para obtener una lista completa de qué identidad de paquete desbloquea y ayuda a elegir el modelo de empaquetado adecuado, consulte Introducción al empaquetado.

Código Abierto

La CLI de winapp está código abierto. Puede encontrar el código fuente, los problemas de archivo y contribuir en GitHub. Para obtener ayuda, consulte Soporte técnico.