WinAppCLI : l’outil CLI pour le développement rapide d’applications Windows
WinAppCLI : l’outil CLI pour le développement rapide d’applications Windows
Construisez, empaquetez et déployez des applications Windows depuis le terminal grâce à une interface en ligne de commande unique et unifiée.
Pourquoi WinAppCLI ?
Les frameworks multiplateformes modernes (Electron, .NET, C++, Rust, Tauri…) offrent d'excellentes expériences utilisateur, mais le déploiement sur Windows reste encore perçu comme un processus distinct, sujet aux erreurs. Vous devez :
- Installer et gérer l’ensemble des ensembles d’outils du SDK Windows et du Windows App SDK.
- Générer les fichiers AppxManifest.xml qui intègrent l'identité, les capacités et les informations de raccourci.
- Créer et maintenir des certificats de développement.
- Empaqueter votre application en MSIX ou EXE.
- Signer les binaires, définir les numéros de version et configurer les métadonnées prêtes pour le Store.
Exécuter chacune de ces étapes manuellement est fastidieux et source d’erreurs. WinAppCLI regroupe ces tâches dans un projet open‑source minimal, bien entretenu.
- Un outil pour plusieurs frameworks – Electron, .NET, C++, Rust, Tauri.
- Installation SDK sans friction – récupère automatiquement les dernières versions du Windows SDK et du App SDK.
- Identité d’application instantanée – ajoute des identités temporaires pour le débogage sans empaquetage complet.
- Génération MSIX rapide et reproductible – prêt pour les pipelines CI/CD.
- Open source – sous licence MIT et entièrement auditable.
Démarrage rapide
1. Installer WinAppCLI
| Plateforme | Commande |
|---|---|
| Windows (via WinGet) | winget install Microsoft.winappcli --source winget |
| Node / Electron | npm install @microsoft/winappcli --save-dev |
| Environnements CI | Utilisez l’action GitHub Actions setup‑WinAppCli ou installez via winget sur l’exécuteur |
Pour le développement local, vous pouvez également télécharger la dernière version depuis la page des releases GitHub.
2. Vérifier l’installation
winapp --help
Vous devriez voir un menu d’aide présentant des commandes telles que init, package, cert, et manifest.
3. Initialiser un projet
# Dans un nouveau projet Electron ou un projet existant
winapp init
Cette commande télécharge les SDK nécessaires, crée des espaces réservés pour les certificats et écrit un fichier winapp.example.yaml (vous pouvez le renommer en winapp.yaml).
Aperçu des commandes principales
| Commande | Rôle |
|---|---|
init |
Initialise les SDK et génère le squelette des manifests et de l’identité |
restore |
Restaure les paquets SDK et les dépendances |
update |
Met à jour les SDK vers les dernières versions |
package |
Construit un package MSIX ou EXE à partir d’un répertoire source |
create-debug-identity |
Ajoute une identité d’application temporaire pour le débogage |
manifest |
Génère ou met à jour AppxManifest.xml |
cert |
Crée ou met à jour un certificat de développement |
sign |
Signe un MSIX ou EXE avec le certificat indiqué |
tool |
Expose les outils en ligne de commande du Windows SDK |
node create-addon |
Génère des addons C# ou C++ pour Electron |
node add-electron-debug-identity |
Ajoute une identité de débogage aux processus Electron |
Une référence complète est disponible dans la documentation officielle.
Projets d’exemple
Le dépôt propose une collection d’exemples prêts à l’emploi illustrant l’utilisation pratique sur plusieurs stacks. Chaque exemple comprend un fichier winapp.yaml et un court README.
- Electron – Utilise Electron Forge, un addon natif C++, et un module C#.
- Electron WinML – Démonstration de classification d’images avec Windows ML.
- C++ (Win32) – Application pure C++ construite avec CMake.
- .NET Console – Met en valeur le wrapper .NET WinAppSDK.
- WPF – Une interface classique Windows Presentation Foundation.
- Rust – Utilise la crate windows‑rs pour les API natives.
- Tauri – Un backend Rust alimentant une interface multiplateforme.
Exécuter un exemple est aussi simple que :
cd samples/electron
npm install
npx winapp init
npx winapp package
Le répertoire dist résultant contient une application empaquetée MSIX prête à être installée en dehors du Store ou soumise au Store.
Intégration CI/CD
WinAppCLI est conçu pour s’intégrer sans friction aux pipelines modernes.
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
Ajoutez la tâche officielle setup-WinAppCli à votre pipeline ou installez via winget sur l’agent.
Le CLI expose des variables d’environnement (par ex. WINAPP_SDK_PATH) qui vous permettent de référencer les SDK installés dans d’autres outils.
Défis courants & dépannage
| Symptôme | Probable cause | Solution |
|---|---|---|
winapp: commande non reconnue |
La CLI n’est pas dans le PATH | Vérifiez l’installation, relancez winget install ou npm, et ajoutez le répertoire local node_modules/.bin au PATH |
| La signature échoue avec The certificate was not found | Chemin de certificat ou mot de passe incorrect | Indiquez le chemin complet avec l’option --certificate, utilisez --password ou la variable d’environnement WINAPP_CERT_PASSWORD |
| Conflits d’identité d’application entre Electron et .NET | Identité dupliquée dans winapp.yaml |
Supprimez ou renommez les entrées conflit |
| L’installation MSIX échoue avec signature is missing | Certificat non approuvé | Installez le certificat de développement dans les Trusted Root Certification Authorities de la machine test |
Contribution
WinAppCLI est un projet open‑source sous licence MIT. N’hésitez pas à :
- Ouvrir des tickets – rapports de bogues, idées de fonctionnalités ou questions d’utilisation.
- Soumettre des pull requests – corrections, améliorations ou nouvelles bindings de langue.
- Contribuer des exemples – ajouter le support d’un autre framework ou système de build.
Tous les contributeurs doivent signer le Contributor License Agreement (CLA) de Microsoft. Consultez le fichier CONTRIBUTING.md pour plus de détails.
Dernières réflexions
WinAppCLI transforme la tâche ardue de l’empaquetage d’applications Windows en un processus répétable et automatisable. Que vous soyez développeur Electron souhaitant ajouter des fonctionnalités Windows natives, développeur .NET cherchant un empaquetage rapide MSIX, ou ingénieur CI nécessitant des étapes de build fiables, cette CLI constitue un atout puissant pour votre chaîne d’outils.
Essayez‑le : installez‑le via WinGet ou NPM, expérimentez un exemple et faites-nous part de vos retours.
Avec les contributions de la communauté et une feuille de route soutenue par Microsoft, WinAppCLI est destiné à devenir le standard de facto pour le développement d’applications Windows à l’ère multiplateforme.