Delen via


Referentie van Windows App Development CLI

Belangrijk

De Windows App Development CLI bevindt zich momenteel in public preview. Functies en opdrachten kunnen vóór de definitieve release worden gewijzigd.

Op deze pagina worden alle beschikbare opdrachten voor de winapp CLI gedocumenten.

Algemene opties

Alle opdrachten ondersteunen deze algemene opties:

Option Beschrijving
--verbose, -v Gedetailleerde logboekuitvoer inschakelen voor uitgebreide logging
--quiet, -q Voortgangsberichten onderdrukken
--help, -h Help voor commando's weergeven

Globale cachemap

WinApp maakt een map voor het opslaan van bestanden die kunnen worden gedeeld tussen meerdere projecten. Dit is standaard $UserProfile/.winapp.

Als u een andere locatie wilt gebruiken, stelt u de WINAPP_CLI_CACHE_DIRECTORY omgevingsvariabele in:

$env:WINAPP_CLI_CACHE_DIRECTORY = "d:\temp\.winapp"

Installatieopdrachten

init

Initialiseer een map met Windows SDK, Windows App SDK en vereiste assets voor moderne Windows-ontwikkeling.

winapp init [base-directory] [options]

Argumenten:

Argument Beschrijving
base-directory Basis-/hoofdmap voor de app/werkruimte (standaard: huidige map)

Opties:

Option Beschrijving
--config-dir <path> Configuratie van map voor lezen/opslaan (standaard: huidige map)
--setup-sdks SDK-installatiemodus: stable (standaard), preview, experimental, of none
--ignore-config, --no-config Gebruik geen configuratiebestand voor versiebeheer
--no-gitignore .gitignore-bestand niet bijwerken
--use-defaults, --no-prompt Niet vragen en de standaardinstellingen voor alle prompts gebruiken
--config-only Alleen configuratiebestandsbewerkingen verwerken, pakketinstallatie overslaan

Wat het doet:

  • Configuratiebestand maken winapp.yaml
  • Windows SDK- en Windows App SDK-pakketten downloaden
  • Hiermee worden C++/WinRT-headers en binaire bestanden gegenereerd
  • Hiermee maakt u AppxManifest.xml
  • Hiermee stelt u buildhulpprogramma's in en activeert u de ontwikkelaarsmodus.
  • Werkt .gitignore bij om gegenereerde bestanden uit te sluiten

Automatische .NET-projectdetectie:

Wanneer een .csproj-bestand wordt gevonden in de doelmap, gebruikt init een gestroomlijnde .NET-specifieke stroom:

  • Valideert en werkt de TargetFramework bij naar een Windows-compatibele TFM (bijvoorbeeld net10.0-windows10.0.26100.0)
  • Voegt Microsoft.WindowsAppSDK en Microsoft.Windows.SDK.BuildTools als NuGet-vermeldingen PackageReference rechtstreeks toe in de .csproj
  • Genereert appxmanifest.xml, assets en een ontwikkelingscertificaat
  • Maakt geen C++-projecties aan winapp.yaml of downloadt ze (gebruik dotnet restore voor NuGet-pakketten)

Voorbeelden:

# 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

Aanbeveling

Als u init hebt uitgevoerd met --setup-sdks none en later de SDK's nodig hebt, voert u winapp init --use-defaults --setup-sdks stable opnieuw uit. Hiermee blijven bestaande bestanden behouden (manifest, enzovoort).

herstellen

Herstel pakketten en genereer bestanden opnieuw op basis van de bestaande winapp.yaml configuratie.

winapp restore [options]

Opties:

Option Beschrijving
--config-dir <path> Map met winapp.yaml (standaard: huidige map)

Wat het doet:

  • Leest de bestaande winapp.yaml configuratie
  • SDK-pakketten downloaden/bijwerken naar opgegeven versies
  • Genereert C++/WinRT-headers en binaire bestanden opnieuw

Opmerking

Voor .NET projecten die zijn geïnitialiseerd met winapp init, is er geen winapp.yaml. Gebruik dotnet restore in plaats daarvan om NuGet-pakketten te herstellen.

Voorbeelden:

# Restore from winapp.yaml in current directory
winapp restore

update

Werk pakketten bij naar de nieuwste versies en werk het configuratiebestand bij.

winapp update [options]

Opties:

Option Beschrijving
--config-dir <path> Map met winapp.yaml (standaard: huidige map)
--setup-sdks SDK-installatiemodus: stable (standaard), preview, experimental, of none

Wat het doet:

  • Leest de bestaande winapp.yaml configuratie
  • Alle pakketten bijwerken naar de nieuwste beschikbare versies
  • winapp.yaml Het bestand bijwerken met nieuwe versienummers
  • Genereert C++/WinRT-headers en binaire bestanden opnieuw

Voorbeelden:

# Update packages to latest versions
winapp update

# Update including experimental packages
winapp update --setup-sdks experimental

Verpakkingscommando's

pack

MSIX-pakketten maken op basis van voorbereide toepassingsmappen. Vereist dat appxmanifest.xml bestand aanwezig is in de doelmap, in de huidige map of doorgegeven met de --manifest optie.

winapp pack <input-folder> [options]

Argumenten:

Argument Beschrijving
input-folder Map met de toepassingsbestanden die moeten worden verpakt

Opties:

Option Beschrijving
--output <filename> MSIX-uitvoerbestandsnaam (standaard: <name>.msix)
--name <name> Pakketnaam (standaard: van manifest)
--manifest <path> Pad naar "AppxManifest.xml" (standaard: automatisch gedetecteerd)
--cert <path> Pad naar handtekeningcertificaat (automatisch ondertekenen is ingeschakeld)
--cert-password <password> Certificaatwachtwoord (standaard: 'wachtwoord')
--generate-cert Een nieuw ontwikkelingscertificaat genereren
--install-cert Certificaat installeren op computer
--publisher <name> Publisher naam voor het genereren van certificaten
--self-contained Bundel Windows App SDK runtime
--skip-pri Pri-bestandsgeneratie overslaan
--executable <path> Pad naar het uitvoerbare bestand ten opzichte van de invoermap. Wordt gebruikt om tijdelijke aanduidingen in het manifest op te lossen $targetnametoken$ .

Wat het doet:

  • Valideert en verwerkt AppxManifest.xml bestanden
  • Hiermee wordt $placeholder$ tokens in het manifest omgezet (zie manifestvariabelen)
  • Zorgt voor de juiste frameworkafhankelijkheden
  • Manifesten parallel bijwerken met registraties
  • Verwerkt zelfstandige Windows App SDK-implementatie
  • Ondertekent het pakket indien het certificaat is verstrekt.

Voorbeelden:

# 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

Maak een app-identiteit voor debuggen zonder volledige MSIX-packaging met behulp van externe locatie/sparse-packaging.

winapp create-debug-identity [entrypoint] [options]

Argumenten:

Argument Beschrijving
entrypoint Pad naar uitvoerbaar bestand (.exe) of script dat identiteit nodig heeft

Opties:

Option Beschrijving
--manifest <path> Pad naar AppxManifest.xml (standaard: ./appxmanifest.xml)
--no-install Installeer het pakket niet na het maken
--keep-identity Houd de manifestidentiteit zoals het is, zonder .debug toe te voegen aan de pakketnaam en toepassings-ID.

Wat het doet:

  • Wijzigt het side-by-side manifest van het uitvoerbare bestand
  • Sparse-pakket voor identiteit registreren
  • Hiermee schakelt u de foutopsporing in voor API's waarvoor identiteit nodig is

Voorbeelden:

# 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

Manifestopdrachten

manifest genereren

Genereer AppxManifest.xml op basis van sjablonen.

winapp manifest generate [directory] [options]

Argumenten:

Argument Beschrijving
directory Map voor het genereren van manifest in (standaard: huidige map)

Opties:

Option Beschrijving
--package-name <name> Pakketnaam (standaard: mapnaam)
--publisher-name <name> Publisher CN (standaard: CN=<current user>)
--version <version> Versie (standaard: "1.0.0.0")
--description <text> Beschrijving (standaard: 'Mijn toepassing')
--entrypoint <path> Invoerpunt-uitvoerbaar bestand of script
--template <type> Sjabloontype: packaged (standaard) of sparse
--logo-path <path> Pad naar logoafbeeldingsbestand
--if-exists <Error\|Overwrite\|Skip> Gedrag als het bestand al bestaat (standaard: fout)

Sjablonen:

Plaatsaanduidingen van het manifest

Gegenereerde manifesten gebruiken $placeholder$ tokens (door dollartekens gescheiden) die automatisch worden omgezet tijdens het verpakken:

Plaatsaanduiding Opgelost in Voorbeeld
$targetnametoken$ Uitvoerbare naam zonder extensie Executable="$targetnametoken$.exe" wordt Executable="MyApp.exe"
$targetentrypoint$ Windows.FullTrustApplication Altijd automatisch opgelost

Hoe tijdelijke aanduidingen worden omgezet:

  • winapp pack $targetnametoken$ wordt omgezet met behulp van de --executable-optie of door automatisch de enkele .exe in de invoermap te detecteren.
  • winapp create-debug-identity $targetnametoken$ wordt omgezet vanuit het invoerpuntargument wanneer deze is opgegeven.
  • winapp manifest generate --executable extraheert metagegevens uit het uitvoerbare bestand, maar blijft $targetnametoken$.exe in het manifest voor latere resolutie.

Aanbeveling

Door $targetnametoken$ in het ingecheckte manifest te behouden, worden harde coderingen van uitvoerbare bestandsnamen vermeden en is het compatibel met zowel winapp pack- als Visual Studio-builds.

Voorbeelden:

# 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

manifest bijwerken-assets

Genereer alle vereiste MSIX-afbeeldingsbronnen van één bronafbeelding.

winapp manifest update-assets <image-path> [options]

Argumenten:

Argument Beschrijving
image-path Pad naar bronafbeeldingsbestand (PNG, JPG, GIF, enzovoort)

Opties:

Option Beschrijving
--manifest <path> Pad naar AppxManifest.xml bestand (standaard: zoeken in huidige map)

Neemt één bronafbeelding en genereert automatisch alle 12 vereiste MSIX-afbeeldingbestanden op de juiste grootte. Assets worden opgeslagen in de Assets map relatief aan de manifestlocatie.

Voorbeelden:

# 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

Opdrachten voor certificaten en ondertekening

certificaat genereren

Ontwikkelcertificaten genereren voor pakketondertekening.

winapp cert generate [options]

Opties:

Option Beschrijving
--manifest <appxmanifest.xml> Gegevens uit publisher appxmanifest.xmlextraheren
--publisher <name> Publisher naam voor certificaat
--output <path> Pad naar uitvoercertificaatbestand
--password <password> Certificaatwachtwoord (standaard: 'wachtwoord')
--valid-days <days> Aantal dagen dat het certificaat geldig is (standaard: 365)
--install Het certificaat na het genereren installeren in het archief van de lokale computer
--if-exists <Error\|Overwrite\|Skip> Gedrag als het certificaatbestand al bestaat (standaard: fout)

certificaat installeren

Installeer het certificaat in de certificaatopslag van de machine.

winapp cert install <cert-path>

Argumenten:

Argument Beschrijving
cert-path Pad naar certificaatbestand dat moet worden geïnstalleerd

Voorbeelden:

# Generate certificate for specific publisher
winapp cert generate --publisher "CN=My Company" --output ./mycert.pfx

# Install certificate to machine
winapp cert install ./mycert.pfx

teken

Onderteken MSIX-pakketten en uitvoerbare bestanden met certificaten.

winapp sign <file-path> [options]

Argumenten:

Argument Beschrijving
file-path Pad naar het MSIX-pakket of uitvoerbare bestand om te ondertekenen

Opties:

Option Beschrijving
--cert <path> Pad naar handtekeningcertificaat
--cert-password <password> Certificaatwachtwoord (standaard: 'wachtwoord')

Voorbeelden:

# Sign MSIX package
winapp sign MyApp.msix --cert ./mycert.pfx

# Sign executable
winapp sign ./bin/MyApp.exe --cert ./mycert.pfx --cert-password mypassword

Hulpprogrammaopdrachten

werktuig

Toegang tot Windows SDK-hulpprogramma's rechtstreeks. Maakt gebruik van hulpprogramma's die beschikbaar zijn in Microsoft.Windows.SDK.BuildTools.

winapp tool <tool-name> [tool-arguments]

Beschikbare hulpprogramma's:

  • makeappx - App-pakketten maken en bewerken
  • signtool - Bestanden ondertekenen en handtekeningen verifiëren
  • mt - Manifesthulpprogramma voor assembly's naast elkaar
  • En andere Windows SDK-hulpprogramma's van Microsoft.Windows.SDK.BuildTools

Voorbeelden:

# Use signtool to verify signature
winapp tool signtool verify /pa MyApp.msix

store

Voer een Microsoft Store Developer CLI-opdracht uit. Met deze opdracht wordt de Microsoft Store Developer CLI gedownload als deze nog niet is gedownload. Meer informatie vindt u in Microsoft Store Developer CLI.

winapp store [args...]

Argumenten:

Argument Beschrijving
args... Argumenten die rechtstreeks moeten worden doorgegeven aan de msstore CLI

Voorbeelden:

# 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

Paden ophalen naar geïnstalleerde Windows SDK-onderdelen.

winapp get-winapp-path [options]

Retourneert paden naar de .winapp werkruimtemap, pakketinstallatiemappen en gegenereerde headerlocaties.


Node.js/Electron-opdrachten

Deze opdrachten zijn alleen beschikbaar in het NPM-pakket.

node uitbreiding-aanmaken

Genereer systeemeigen C++- of C#-invoegtoepassingssjablonen met Windows SDK en Windows App SDK integratie.

npx winapp node create-addon [options]

Opties:

Option Beschrijving
--name <name> Naam van invoegtoepassing (standaard: "nativeWindowsAddon")
--template Selecteer het type invoegtoepassing: cs of cpp (standaard: cpp)
--verbose Uitgebreide uitvoer inschakelen

Wat het doet:

  • Maakt een map voor invoegtoepassingen met sjabloonbestanden
  • Genereert binding.gyp- en addon-bestanden met Windows SDK-voorbeelden
  • Vereiste npm-afhankelijkheden installeren
  • Hiermee voegt u een buildscript toe aan package.json

Voorbeelden:

# Generate addon with default name
npx winapp node create-addon

# Generate custom named C# addon
npx winapp node create-addon --name myWindowsAddon --template cs

knooppunt add-electron-debug-identity

Voeg de identiteit van de app toe aan het ontwikkelingsproces van Electron door gebruik te maken van 'sparse packaging'. Hiervoor is een appxmanifest.xml vereist (maak er een met winapp init of winapp manifest generate).

Belangrijk

Er is een bekend probleem met sparse packaging Electron-toepassingen die ervoor zorgen dat de app vastloopt bij het starten of niet genereren van webinhoud. Het probleem is opgelost in Windows, maar is nog niet doorgegeven aan alle apparaten. U kunt sandboxing uitschakelen in uw Electron-app met de --no-sandbox vlag als tijdelijke oplossing. Dit probleem heeft geen invloed op volledige MSIX-pakketten.

Als u de Electron-foutopsporingsidentiteit ongedaan wilt maken, gebruikt u winapp node clear-electron-debug-identity.

npx winapp node add-electron-debug-identity [options]

Opties:

Option Beschrijving
--manifest <path> Pad naar aangepaste appxmanifest.xml (standaard: appxmanifest.xml in de huidige map)
--no-install Installeer of wijzig geen afhankelijkheden; alleen de Electron-foutopsporingsidentiteit configureren
--keep-identity Houd de manifestidentiteit ongewijzigd, zonder .debug toe te voegen
--verbose Uitgebreide uitvoer inschakelen

Voorbeelden:

# 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

knooppunt clear-electron-debug-identity

Verwijder pakketidentiteit uit het electron-foutopsporingsproces door de oorspronkelijke electron.exe te herstellen uit de back-up.

npx winapp node clear-electron-debug-identity [options]

Opties:

Option Beschrijving
--verbose Uitgebreide uitvoer inschakelen

Voorbeelden:

# Remove identity from Electron development process
npx winapp node clear-electron-debug-identity