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 à :

  1. Ouvrir des tickets – rapports de bogues, idées de fonctionnalités ou questions d’utilisation.
  2. Soumettre des pull requests – corrections, améliorations ou nouvelles bindings de langue.
  3. 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.

Original Article: Voir l’original

Partager cet article