Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Important
L'interface CLI de développement Windows App est actuellement en préversion publique. Les fonctionnalités et les commandes peuvent changer avant la version finale.
Cette page documente toutes les commandes disponibles pour l’interface CLI winapp.
Options globales
Toutes les commandes prennent en charge ces options globales :
| Choix | Description |
|---|---|
--verbose, -v |
Activer la sortie détaillée pour la journalisation détaillée |
--quiet, -q |
Supprimer les messages de progression |
--help, -h |
Afficher l’aide de la commande |
Répertoire global du cache
WinApp crée un répertoire pour mettre en cache des fichiers qui peuvent être partagés entre plusieurs projets. ($UserProfile/.winapp par défaut).
Pour utiliser un autre emplacement, définissez la variable d’environnement WINAPP_CLI_CACHE_DIRECTORY :
$env:WINAPP_CLI_CACHE_DIRECTORY = "d:\temp\.winapp"
Commandes d’installation
Init
Initialisez un répertoire avec le Kit de développement logiciel (SDK) Windows, Windows App SDK et les ressources requises pour le développement Windows moderne.
winapp init [base-directory] [options]
Arguments :
| Argument | Description |
|---|---|
base-directory |
Répertoire de base/racine de l’application/espace de travail (par défaut : répertoire actif) |
Options :
| Choix | Description |
|---|---|
--config-dir <path> |
Répertoire pour lire/stocker la configuration (par défaut : répertoire actif) |
--setup-sdks |
Mode d’installation du Kit de développement logiciel (SDK) : stable (par défaut), previewou experimentalnone |
--ignore-config, --no-config |
N’utilisez pas de fichier de configuration pour la gestion des versions |
--no-gitignore |
Ne mettez pas à jour le fichier .gitignore |
--use-defaults, --no-prompt |
Ne pas inviter et utiliser la valeur par défaut de toutes les invites |
--config-only |
Gérer uniquement les opérations de fichier de configuration, ignorer l’installation du package |
Résultat :
- Crée un
winapp.yamlfichier de configuration - Télécharge les packages du Kit de développement logiciel (SDK) et de Windows App SDK
- Génère des en-têtes C++/WinRT et des fichiers binaires
- Crée AppxManifest.xml
- Configure les outils de génération et active le mode développeur
- Met à jour .gitignore pour exclure les fichiers générés
Détection automatique de projet .NET :
Lorsqu’un fichier .csproj se trouve dans le répertoire cible, init utilise un flux simplifié spécifique aux .NET :
- Valide et met à jour le TFM
TargetFrameworkcompatible avec Windows (par exemple,net10.0-windows10.0.26100.0) - Ajoute
Microsoft.WindowsAppSDKetMicrosoft.Windows.SDK.BuildToolsen tant qu’entrées NuGetPackageReferencedirectement dans le.csproj - Génère
appxmanifest.xml, des ressources, et un certificat de développement - Ne crée pas ou ne télécharge
winapp.yamlde projections C++ (utilisationdotnet restorepour les packages NuGet)
Exemples :
# Initialize current directory
winapp init
# Initialize with experimental packages
winapp init --setup-sdks experimental
# Initialize specific directory without prompts
winapp init ./my-project --use-defaults
# Initialize a .NET project (auto-detected from .csproj)
cd my-dotnet-app
winapp init
Conseil / Astuce
Si vous avez exécuté init avec --setup-sdks none et que vous avez ensuite besoin des SDK, réexécutez winapp init --use-defaults --setup-sdks stable. Cela conserve les fichiers existants (manifeste, etc.).
restore
Restaurez des packages et régénérez les fichiers en fonction de la configuration existante winapp.yaml .
winapp restore [options]
Options :
| Choix | Description |
|---|---|
--config-dir <path> |
Répertoire contenant winapp.yaml (par défaut : répertoire actif) |
Résultat :
- Lit la configuration existante
winapp.yaml - Téléchargements/mises à jour des packages sdk vers des versions spécifiées
- Régénère les en-têtes C++/WinRT et les fichiers binaires
Note
Pour les projets .NET initialisés avec winapp init, il n’existe aucun winapp.yaml. Utilisez dotnet restore pour restaurer des packages NuGet.
Exemples :
# Restore from winapp.yaml in current directory
winapp restore
update
Mettez à jour les packages vers leurs dernières versions et mettez à jour le fichier de configuration.
winapp update [options]
Options :
| Choix | Description |
|---|---|
--config-dir <path> |
Répertoire contenant winapp.yaml (par défaut : répertoire actif) |
--setup-sdks |
Mode d’installation du Kit de développement logiciel (SDK) : stable (par défaut), previewou experimentalnone |
Résultat :
- Lit la configuration existante
winapp.yaml - Met à jour tous les packages vers leurs dernières versions disponibles
- Met à jour le fichier avec les
winapp.yamlnouveaux numéros de version - Régénère les en-têtes C++/WinRT et les fichiers binaires
Exemples :
# Update packages to latest versions
winapp update
# Update including experimental packages
winapp update --setup-sdks experimental
Commandes d’empaquetage
pack
Créez des packages MSIX à partir de répertoires d’applications préparés. Nécessite que appxmanifest.xml fichier soit présent dans le répertoire cible, dans le répertoire actif ou transmis avec l’option --manifest .
winapp pack <input-folder> [options]
Arguments :
| Argument | Description |
|---|---|
input-folder |
Répertoire contenant les fichiers d’application à empaqueter |
Options :
| Choix | Description |
|---|---|
--output <filename> |
Nom de fichier MSIX de sortie (par défaut : <name>.msix) |
--name <name> |
Nom du package (valeur par défaut : à partir du manifeste) |
--manifest <path> |
Chemin d’accès à AppxManifest.xml (par défaut : détection automatique) |
--cert <path> |
Chemin d’accès au certificat de signature (active la signature automatique) |
--cert-password <password> |
Mot de passe du certificat (par défaut : « mot de passe ») |
--generate-cert |
Générer un nouveau certificat de développement |
--install-cert |
Installer un certificat sur l’ordinateur |
--publisher <name> |
nom de Publisher pour la génération de certificat |
--self-contained |
Paquet Windows App SDK runtime |
--skip-pri |
Ignorer la génération de fichiers PRI |
--executable <path> |
Chemin d’accès à l’exécutable par rapport au dossier d’entrée. Permet de résoudre les espaces réservés $targetnametoken$ dans le manifeste. |
Résultat :
- Valide et traite les fichiers AppxManifest.xml
- Résout les jetons
$placeholder$dans le manifeste (voir espaces réservés du manifeste) - Garantit les dépendances d’infrastructure appropriées
- Met à jour des manifestes parallèles avec des enregistrements
- Gère le déploiement autonome de Windows App SDK
- Signe le paquet si le certificat est fourni
Exemples :
# Package directory with auto-detected manifest
winapp pack ./dist
# Package with custom output name and certificate
winapp pack ./dist --output MyApp.msix --cert ./cert.pfx
# Package with generated and installed certificate and self-contained runtime
winapp pack ./dist --generate-cert --install-cert --self-contained
# Package with explicit executable
winapp pack ./dist --executable MyApp.exe
create-debug-identity
Créez une identité d'application pour le débogage sans empaquetage MSIX complet à l’aide de la localisation externe/l’empaquetage épars.
winapp create-debug-identity [entrypoint] [options]
Arguments :
| Argument | Description |
|---|---|
entrypoint |
Chemin d’accès à l’exécutable (.exe) ou script qui a besoin d’une identité |
Options :
| Choix | Description |
|---|---|
--manifest <path> |
Chemin d’accès à AppxManifest.xml (valeur par défaut : ./appxmanifest.xml) |
--no-install |
N’installez pas le package après la création |
--keep-identity |
Conservez l’identité du manifeste as-is, sans ajouter .debug le nom du package et l’ID d’application |
Résultat :
- Modifie le manifeste parallèle de l'exécutable
- Enregistre le package clairsemé pour l'identité
- Active le débogage des API nécessitant des identités
Exemples :
# Add identity to executable using local manifest
winapp create-debug-identity ./bin/MyApp.exe
# Add identity with custom manifest location
winapp create-debug-identity ./dist/app.exe --manifest ./custom-manifest.xml
Commandes de manifeste
générer un manifeste
Générez AppxManifest.xml à partir de modèles.
winapp manifest generate [directory] [options]
Arguments :
| Argument | Description |
|---|---|
directory |
Répertoire dans lequel générer le manifeste (par défaut : répertoire actif) |
Options :
| Choix | Description |
|---|---|
--package-name <name> |
Nom du package (par défaut : nom du dossier) |
--publisher-name <name> |
Publisher CN (valeur par défaut : CN=<current user>) |
--version <version> |
Version (valeur par défaut : « 1.0.0.0 ») |
--description <text> |
Description (valeur par défaut : « Mon application ») |
--entrypoint <path> |
Exécutable ou script du point d’entrée |
--template <type> |
Type de modèle : packaged (par défaut) ou sparse |
--logo-path <path> |
Chemin d’accès au fichier image du logo |
--if-exists <Error\|Overwrite\|Skip> |
Comportement si le fichier existe déjà (valeur par défaut : Erreur) |
Modèles:
-
packaged- Manifeste d’application empaqueté standard -
sparse- Manifest de l'application utilisant un empaquetage d'emplacements disséminés/externes
Espaces réservés de manifeste
Les manifestes générés utilisent des jetons $placeholder$ (délimités par un signe dollar) qui sont résolus automatiquement au moment de l’empaquetage :
| Espace réservé | Résolu à | Exemple |
|---|---|---|
$targetnametoken$ |
Nom exécutable sans extension |
Executable="$targetnametoken$.exe" devient Executable="MyApp.exe" |
$targetentrypoint$ |
Windows.FullTrustApplication |
Toujours résolu automatiquement |
Comment les espaces réservés sont gérés :
-
winapp packrésout$targetnametoken$à l’aide de l’option--executableou en détectant automatiquement le single.exedans le dossier d’entrée. -
winapp create-debug-identityrésout$targetnametoken$à partir de l’argument de point d’entrée lorsqu’il est fourni. -
winapp manifest generate --executableextrait les métadonnées de l’exécutable, mais conserve$targetnametoken$.exele manifeste pour une résolution ultérieure.
Conseil / Astuce
Garder $targetnametoken$ dans votre manifeste enregistré évite de coder en dur les noms des exécutables et fonctionne avec les builds winapp pack et Visual Studio.
Exemples :
# Generate standard manifest interactively
winapp manifest generate
# Generate with all options specified
winapp manifest generate ./src --package-name MyApp --publisher-name "CN=My Company" --if-exists overwrite
manifeste mettre à jour les assets
Générez toutes les ressources d’image MSIX requises à partir d’une seule image source.
winapp manifest update-assets <image-path> [options]
Arguments :
| Argument | Description |
|---|---|
image-path |
Chemin d’accès au fichier image source (PNG, JPG, GIF, etc.) |
Options :
| Choix | Description |
|---|---|
--manifest <path> |
Chemin d’accès au fichier AppxManifest.xml (valeur par défaut : rechercher dans le répertoire actif) |
Prend une image source unique et génère automatiquement toutes les 12 ressources d’image MSIX requises aux dimensions correctes. Les ressources sont enregistrées dans le répertoire Assets par rapport à l’emplacement du manifeste.
Exemples :
# Generate assets with auto-detected manifest
winapp manifest update-assets mylogo.png
# Specify manifest location explicitly
winapp manifest update-assets mylogo.png --manifest ./dist/appxmanifest.xml
Commandes de certificat et de signature
Générer un certificat
Générez des certificats de développement pour la signature de paquet.
winapp cert generate [options]
Options :
| Choix | Description |
|---|---|
--manifest <appxmanifest.xml> |
Extraire des informations de publisher de appxmanifest.xml |
--publisher <name> |
nom de l'éditeur pour le certificat |
--output <path> |
Chemin d’accès du fichier de certificat de sortie |
--password <password> |
Mot de passe du certificat (par défaut : « mot de passe ») |
--valid-days <days> |
Nombre de jours pendant lesquels le certificat est valide (par défaut : 365) |
--install |
Installer le certificat dans le magasin d’ordinateurs local après la génération |
--if-exists <Error\|Overwrite\|Skip> |
Comportement si le fichier de certificat existe déjà (valeur par défaut : Erreur) |
Installation du certificat
Installez le certificat dans le magasin de certificats de l’ordinateur.
winapp cert install <cert-path>
Arguments :
| Argument | Description |
|---|---|
cert-path |
Chemin d’accès au fichier de certificat à installer |
Exemples :
# Generate certificate for specific publisher
winapp cert generate --publisher "CN=My Company" --output ./mycert.pfx
# Install certificate to machine
winapp cert install ./mycert.pfx
Signe
Signer des packages MSIX et des exécutables avec des certificats.
winapp sign <file-path> [options]
Arguments :
| Argument | Description |
|---|---|
file-path |
Chemin d’accès au package MSIX ou exécutable à signer |
Options :
| Choix | Description |
|---|---|
--cert <path> |
Chemin d’accès au certificat de signature |
--cert-password <password> |
Mot de passe du certificat (par défaut : « mot de passe ») |
Exemples :
# Sign MSIX package
winapp sign MyApp.msix --cert ./mycert.pfx
# Sign executable
winapp sign ./bin/MyApp.exe --cert ./mycert.pfx --cert-password mypassword
Commandes utilitaires
Outil
Accédez directement aux outils du Kit de Développement Logiciel (SDK) Windows. Utilise les outils disponibles dans Microsoft.Windows.SDK.BuildTools.
winapp tool <tool-name> [tool-arguments]
Outils disponibles :
-
makeappx- Créer et manipuler des packages d’application -
signtool- Signer des fichiers et vérifier les signatures -
mt- Outil manifeste pour les assemblages côte-à-côte - Et d’autres outils du Kit de développement logiciel (SDK) Windows à partir de Microsoft.Windows.SDK.BuildTools
Exemples :
# Use signtool to verify signature
winapp tool signtool verify /pa MyApp.msix
store
Exécutez une commande CLI développeur du Microsoft Store. Cette commande télécharge l’interface CLI du développeur du Microsoft Store si elle n’est pas déjà téléchargée. En savoir plus sur l’interface CLI du développeur du Microsoft Store.
winapp store [args...]
Arguments :
| Argument | Description |
|---|---|
args... |
Arguments à passer directement à la ligne de commande msstore CLI |
Exemples :
# List all apps in your Microsoft Partner Center account
winapp store app list
# Publish a package to the Microsoft Store
winapp store publish ./myapp.msix --appId <your-app-id>
get-winapp-path
Obtenir les chemins d’accès aux composants du Kit de développement logiciel (SDK) Windows installés.
winapp get-winapp-path [options]
Retourne les chemins d’accès à l'espace de travail .winapp, aux répertoires d’installation de paquets et aux emplacements d’en-tête générés.
Commandes Node.js / Electron
Ces commandes sont disponibles uniquement dans le package NPM.
node create-addon
Générez des modèles de complément C++ ou C# natifs avec le Kit de développement logiciel (SDK) Windows et l’intégration Windows App SDK.
npx winapp node create-addon [options]
Options :
| Choix | Description |
|---|---|
--name <name> |
Nom du module complémentaire (valeur par défaut : « nativeWindowsAddon ») |
--template |
Sélectionner le type de module complémentaire : cs ou cpp (par défaut : cpp) |
--verbose |
Activer la sortie détaillée |
Résultat :
- Crée un répertoire d'extension avec des fichiers de modèle
- Génère des fichiers binding.gyp et des modules complémentaires avec des exemples de l'SDK Windows
- Installe les dépendances npm requises
- Ajoute un script de génération à package.json
Exemples :
# Generate addon with default name
npx winapp node create-addon
# Generate custom named C# addon
npx winapp node create-addon --name myWindowsAddon --template cs
node add-electron-debug-identity
Ajoutez l'identité de l'application au processus de développement Electron à l'aide d'un packaging éparse. Nécessite un appxmanifest.xml (créez-en un avec winapp init ou winapp manifest generate).
Important
Il existe un problème connu lié à l’empaquetage d’applications Electron éparses qui provoquent le blocage de l’application au démarrage ou non du rendu du contenu web. Le problème a été résolu dans Windows, mais n’a pas encore été propagé à tous les appareils. Vous pouvez désactiver le bac à sable dans votre application Electron avec l’indicateur --no-sandbox comme solution de contournement. Ce problème n’affecte pas l’empaquetage MSIX complet.
Pour supprimer l'identité de débogage d'Electron, utilisez winapp node clear-electron-debug-identity.
npx winapp node add-electron-debug-identity [options]
Options :
| Choix | Description |
|---|---|
--manifest <path> |
Chemin d’accès à un appxmanifest.xml personnalisé (valeur par défaut : appxmanifest.xml dans le répertoire actif) |
--no-install |
N'installez pas ou ne modifiez pas les dépendances ; ne configurez que l'identité de débogage d'Electron |
--keep-identity |
Maintenez l’identité du manifeste tel quel, sans ajouter .debug. |
--verbose |
Activer la sortie détaillée |
Exemples :
# Add identity to Electron development process
npx winapp node add-electron-debug-identity
# Use a custom manifest file
npx winapp node add-electron-debug-identity --manifest ./custom/appxmanifest.xml
node effacer-Électron-débogage-identité
Supprimez l’identité du package du processus de débogage Electron en restaurant le electron.exe d’origine de la sauvegarde.
npx winapp node clear-electron-debug-identity [options]
Options :
| Choix | Description |
|---|---|
--verbose |
Activer la sortie détaillée |
Exemples :
# Remove identity from Electron development process
npx winapp node clear-electron-debug-identity
Rubriques connexes
Windows developer