CLI de développement d'application Windows (CLI winapp)

Important

L’interface CLI de développement d'applications Windows est actuellement en préversion publique. Les fonctionnalités et les commandes peuvent changer avant la version finale. Partagez vos commentaires en création d’un problème.

application Windows Development CLI (winapp CLI) est un outil en ligne de commande permettant de créer des applications Windows avec le framework de votre choix. Il fonctionne à partir d’un terminal, de l’éditeur que vous préférez ou d’un agent de codage IA.

  • Applications WinUI : créer, exécuter, déboguer, tester et empaqueter des applications WinUI sans ouvrir Visual Studio.
  • Multiplateforme et autres frameworks : apportez des fonctionnalités Windows à votre application Electron, Flutter, Tauri, Rust, .NET ou C++ existante sans modifier les frameworks. winapp CLI configure le SDK d'application Windows et le SDK Windows, donne à votre application une identité de package d’application pour pouvoir appeler des API telles que les notifications et l’IA sur l’appareil, et la package au format MSIX pour le Microsoft Store ou votre propre distribution.

Principaux avantages de winapp CLI

Icône d’invite de commandes sur une vignette levée sur une vague de pixels bleus

Créer et exécuter des applications WinUI à partir du terminal
winapp new crée une application WinUI à partir des modèles officiels, notamment les modèles vierges, NavigationView, TabView et des modèles MVVM. winapp rungénère le projet, installe le application Windows Runtime correspondant et lance l'application, qu'elle soit empaquetée ou non empaquetée.
Créez votre première application WinUI

Icône de bogue sur une vignette levée sur une bande diagonale de pixels bleus

Déboguer avec l’identité du package et les diagnostics d’incident
Exécutez votre application avec une identité de package pour pouvoir tester les notifications, l’IA sur l’appareil et d’autres API qui nécessitent une identité. Ajoutez --debug-output pour capturer des messages de débogage et des vidages sur incident. Pour les plantages WinUI, winapp décode les exceptions stockées pour vous pointer vers le gestionnaire d’événements XAML qui a échoué.
Débogage avec l’identité du package

Bulle de conversation avec icône sparkles sur une vignette levée sur une vague de pixels bleus

Ancrez les agents de codage IA dans du vrai code WinUI
winapp find-uiretourne du code XAML et C# fonctionnel à partir de la galerie WinUI 3 et de la Windows Community Toolkit. winapp find-api inspecte les API Windows Runtime auxquelles votre projet fait référence. Les agents les utilisent pour générer du code à partir d’échantillons réels et de métadonnées au lieu de deviner.
Utiliser l’interface CLI winapp avec des agents IA

Icône de pointeur et de contact tactile sur une tuile en relief sur une bande diagonale de pixels bleus

Automatiser et tester l’interface utilisateur de votre application
winapp uiinspecte et interagit avec les applications en cours d’exécution via UI Automation, et capture des captures d’écran et des enregistrements. Exécutez votre application dans Windows Sandbox pour la tester dans un environnement propre.
Automatisation d’interface utilisateur

Icône de paquet sur une vignette levée sur une vague de pixels bleus

Emballez, signez et expédiez
winapp pack génère votre projet, le package en tant que MSIX et le signe en une seule étape. Générez des certificats de développement localement, signez les builds de mise en production avec Signatures de confiance Azure et installez l’interface CLI winapp sur GitHub Actions ou des runners Azure DevOps.
Packager votre application

Icône de pièce de puzzle sur une vignette levée sur une bande diagonale de pixels bleus

Apporter des fonctionnalités Windows à n’importe quel framework
Ajoutez le sdk Windows et SDK d'application Windows, l’identité de package et l’empaquetage MSIX aux applications créées avec .NET, C++, Electron, Flutter, Rust ou Tauri, sans modifier votre système de build.
Voir les frameworks pris en charge

Bien démarrer avec WinUI

Après avoir installé winapp CLI et le kit de développement logiciel (SDK) .NET, créez et exécutez une application WinUI :

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

Lorsque vous êtes prêt à tester un package localement, générez un certificat de développement et créez un package MSIX signé :

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

Le certificat de développement utilise un mot de passe par défaut et est destiné uniquement aux tests locaux. Avant de distribuer votre application, signez-la avec un certificat approuvé, par exemple avec winapp az-sign. Pour plus d’informations, voir la section Sécurité.

Pour obtenir une procédure pas à pas qui inclut l’installation et votre première modification de l’interface utilisateur, consultez Build your first WinUI app. Pour afficher tous les modèles disponibles, exécutez winapp new --list. Pour obtenir le flux de travail complet, notamment le débogage, l’automatisation de l’interface utilisateur et l’empaquetage, consultez Utilisation de l’interface CLI winapp avec WinUI.

Installation

WinGet

Le moyen le plus simple d’installer l’interface CLI consiste à utiliser WinGet (Windows Gestionnaire de package) :

winget install Microsoft.winappcli --source winget

Si vous utilisez le module PowerShell WinGet, exécutez Install-WinGetPackage Microsoft.winappcli à la place.

NPM

Pour les projets Electron, installez via npm :

npm install @microsoft/winappcli --save-dev

GitHub Actions / Azure DevOps

Pour les pipelines CI/CD, utilisez l’action setup-WinAppCli pour installer automatiquement l’interface CLI sur vos exécuteurs/agents.

Téléchargement manuel

Téléchargez la dernière build à partir de GitHub Versions.

Vérifier l’installation

Une fois installé, vérifiez l’installation en appelant l’interface CLI :

winapp --help

Ou si vous utilisez Electron/Node.js:

npx winapp --help

Utiliser la CLI winapp à l’aide d’agents IA

Winapp CLI est conçu pour fonctionner correctement avec les agents de codage IA. Commandes telles que find-ui et find-api renvoient une sortie lisible par machine avec --json, afin qu’un agent puisse rechercher de vrais exemples WinUI et des API Windows Runtime avant d’écrire du code.

Installez le plug-in winapp pour donner à votre agent des compétences pour le workflow winapp CLI:

# GitHub Copilot CLI
copilot plugin install microsoft/WinAppCli

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

Si vous travaillez dans Visual Studio Code, l’extension WinApp VS Code exécute des commandes CLI Winapp à partir de l’éditeur et lance votre application avec une identité de package lorsque vous appuyez sur F5. Installez-le à partir de Visual Studio Marketplace.

Frameworks pris en charge

Winapp CLI fonctionne avec WinUI et d’autres frameworks d’application :

Cadre Guide
WinUI Bien démarrer avec WinUI
.NET / WPF / WinForms Commencez avec .NET
.NET MAUI Bien démarrer avec .NET MAUI
C++ (CMake) Commencez avec C++
Électron Commencez avec Electron
Rust Commencez avec Rust
Tauri Commencez avec Tauri
Flutter Commencer avec Flutter

Guides supplémentaires :

  • Empaquetage d’un EXE/CLI : guide pas à pas pour empaqueter un EXE/CLI existant en tant que MSIX
  • Packaging sparse : attribuez une identité de package à une application non empaquetée avec un MSIX uniquement d’identité (sparse) et du contenu externe
  • Complétion de shell : activez la complétion par tabulation pour les commandes, les options et les valeurs dans PowerShell, bash, zsh et fish
  • Conseils de sécurité : quels certificats de développement et mode développeur changent sur votre ordinateur, comment gérer devcert.pfxet comment signer pour la production

Vue d’ensemble des commandes

Catégorie Commandes
Créer &configurer nouveau, initialiser, restaurer, mettre à jour
Exécuter et déboguer run, create-debug-identity, embed-identity, unregister
Emballage emballer
Manifestes générer le manifeste, mettre à jour les actifs du manifeste, ajouter un alias au manifeste
Certificats & Signature cert generate, cert install, sign, az-sign, create-external-catalog
Recherche de code pour les agents find-ui, find-api
UI automation & Sandbox ui, cible
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

Pour obtenir la référence CLI complète, consultez la référence CLI.

Samples

Le dossier d’exemples sur GitHub a un projet exécutable pour chaque framework pris en charge :

Sample Description
application WinUI Application WinUI empaquetée enregistrée et lancée avec winapp run
application WinUI non empaquetée Application WinUI non empaquetée lancée avec winapp run
solution WinUI Solution multi-projet (projet d’application et de test) qui montre comment winapp run sélectionne le projet d’application
Application WinUI en C++ Fenêtre WinUI créée en C++ avec CMake, sans XAML ou MSBuild
application WPF application de bureau WPF
application .NET MAUI projet Windows .NET MAUI empaqueté et signé avec l’interface CLI winapp
Application C++ Application Win32 native C++ créée avec CMake
Électron Application Electron Forge avec un manifeste, des ressources et des compléments C++ et C# natifs
appli Rust Application Rust qui appelle des API Windows
app Tauri Application Tauri avec un back-end Rust
application Flutter Application de bureau Flutter avec identité de package et SDK d'application Windows
Application Sparse Application WPF avec empaquetage fragmenté (MSIX identité uniquement) et un programme d’installation

Pourquoi l’identité du package ?

De nombreuses API Windows nécessitent que votre application dispose d’une identité de package. Avec l’identité, votre application gagne access aux fonctionnalités telles que les notifications, l’intégration du système d’exploitation et l’IA sur appareil. Les modèles d’application WinUI incluent un manifeste de package, ce qui leur confère par défaut une identité winapp run. Pour obtenir la liste complète de ce que l’identité de package déverrouille et aide à choisir le modèle d’empaquetage approprié, consultez Vue d’ensemble de l’empaquetage.

code source ouvert

winapp CLI est open source. Vous pouvez trouver le code source, les problèmes de fichier et contribuer à GitHub. Pour obtenir de l’aide, consultez Support.