Referenční informace k příkazovému rozhraní pro vývoj Windows App

Důležité

Rozhraní příkazového řádku pro vývoj aplikací Windows je aktuálně ve verzi veřejné zkušební verze. Funkce a příkazy se můžou před finální verzí změnit.

Tato stránka dokumentuje všechny dostupné příkazy pro rozhraní příkazového řádku winapp.

Globální možnosti

Všechny příkazy podporují tyto globální možnosti:

Možnost Description
--verbose, -v Povolení podrobného výstupu pro detailní protokolování
--quiet, -q Potlačení zpráv o průběhu
--help, -h Zobrazit nápovědu k příkazu

Adresář globální mezipaměti

WinApp vytvoří adresář pro ukládání souborů do mezipaměti, které se dají sdílet mezi více projekty. Ve výchozím nastavení je to $UserProfile/.winapp.

Pokud chcete použít jiné umístění, nastavte proměnnou WINAPP_CLI_CACHE_DIRECTORY prostředí:

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

Instalační příkazy

inicializace

Inicializace adresáře pomocí sady Windows SDK, Windows App SDK a požadovaných prostředků pro moderní vývoj pro Windows

winapp init [base-directory] [options]

argumenty :

Argument Description
base-directory Základní/kořenový adresář pro aplikaci nebo pracovní prostor (výchozí: aktuální adresář)

Možnosti:

Možnost Description
--config-dir <path> Konfigurace pro čtení a ukládání adresáře (výchozí: aktuální adresář)
--setup-sdks Režim instalace sady SDK: stable (výchozí), preview, experimentalnebo none
--ignore-config, --no-config Nepoužívejte konfigurační soubor pro správu verzí
--no-gitignore Neaktualizovat soubor .gitignore
--use-defaults, --no-prompt Nezobrazovat výzvy a použít výchozí nastavení pro všechny výzvy.
--config-only Zpracování pouze operací konfiguračního souboru, přeskočení instalace balíčku

Co to dělá:

  • Vytvoří winapp.yaml konfigurační soubor.
  • Stáhne balíčky Windows SDK a Windows App SDK.
  • Generuje hlavičky a binární soubory C++/WinRT.
  • Vytvoří AppxManifest.xml
  • Nastaví nástroje sestavení a povolí vývojářský režim.
  • Aktualizuje soubor .gitignore, aby se vygenerované soubory vyloučily.

Automatická detekce projektů .NET:

Když se v cílovém adresáři nachází soubor .csproj, init používá zjednodušený tok specifický pro .NET:

  • Ověří a aktualizuje TargetFramework na TFM kompatibilní s Windows (například net10.0-windows10.0.26100.0).
  • Přidá Microsoft.WindowsAppSDK a Microsoft.Windows.SDK.BuildTools jako položky NuGet PackageReference přímo v .csproj
  • Generuje appxmanifest.xml, prostředky a vývojový certifikát.
  • Nevytváří ani nestahuje projekce jazyka C++ (pro balíčky NuGet použijte dotnet restore).

Příklady:

# 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

Návod

Pokud jste spustili init--setup-sdks none a později budete potřebovat sady SDK, spusťte winapp init --use-defaults --setup-sdks stable znovu. Tím se zachová existující soubory (manifest atd.).

obnovení

Obnovte balíčky a znovu vygenerujte soubory na základě stávající winapp.yaml konfigurace.

winapp restore [options]

Možnosti:

Možnost Description
--config-dir <path> Adresář obsahující winapp.yaml (výchozí: aktuální adresář)

Co to dělá:

  • Přečte existující winapp.yaml konfiguraci.
  • Stahuje/aktualizuje balíčky SDK na zadané verze
  • Znovu vygeneruje hlavičky a binární soubory C++/WinRT.

Poznámka:

U projektů .NET inicializovaných pomocí winapp init neexistuje winapp.yaml. Použijte dotnet restore k obnovení balíčků NuGet.

Příklady:

# Restore from winapp.yaml in current directory
winapp restore

aktualizace

Aktualizujte balíčky na nejnovější verze a aktualizujte konfigurační soubor.

winapp update [options]

Možnosti:

Možnost Description
--config-dir <path> Adresář obsahující winapp.yaml (výchozí: aktuální adresář)
--setup-sdks Režim instalace sady SDK: stable (výchozí), preview, experimentalnebo none

Co to dělá:

  • Přečte existující winapp.yaml konfiguraci.
  • Aktualizuje všechny balíčky na nejnovější dostupné verze.
  • Aktualizuje soubor winapp.yaml s novými čísly verzí.
  • Znovu vygeneruje hlavičky a binární soubory C++/WinRT.

Příklady:

# Update packages to latest versions
winapp update

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

Příkazy pro balení

pack

Vytvořte balíčky MSIX z připravených adresářů aplikací. Vyžaduje, aby byl soubor appxmanifest.xml v cílovém adresáři, v aktuálním adresáři nebo předán s --manifest možností.

winapp pack <input-folder> [options]

argumenty :

Argument Description
input-folder Adresář obsahující soubory aplikace k zabalení

Možnosti:

Možnost Description
--output <filename> Název výstupního souboru MSIX (výchozí: <name>.msix)
--name <name> Název balíčku (výchozí hodnota: z manifestu)
--manifest <path> Cesta k AppxManifest.xml (výchozí: automatické rozpoznání)
--cert <path> Cesta k podpisovým certifikátům (umožňuje automatické podepisování)
--cert-password <password> Heslo certifikátu (výchozí: "heslo")
--generate-cert Vygenerování nového vývojového certifikátu
--install-cert Instalace certifikátu do počítače
--publisher <name> název Publisher pro generování certifikátů
--self-contained Balík runtime pro Windows App SDK
--skip-pri Přeskočit generování souborů PRI
--executable <path> Cesta ke spustitelnému souboru vzhledem ke vstupní složce Slouží k vyřešení $targetnametoken$ zástupných symbolů v manifestu.

Co to dělá:

  • Ověřuje a zpracovává AppxManifest.xml soubory.
  • $placeholder$ Řeší tokeny v manifestu (viz zástupné symboly manifestu).
  • Zajišťuje správné rámcové závislosti.
  • Aktualizace paralelních manifestů s registracemi
  • Zpracovává nasazení Windows App SDK jako samostatná jednotka
  • Podepíše balíček, pokud je zadaný certifikát.

Příklady:

# 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

Vytvořte identitu aplikace pro ladění bez úplného balení MSIX pomocí externího umístění nebo ředěného balení.

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

argumenty :

Argument Description
entrypoint Cesta ke spustitelnému souboru (.exe) nebo skriptu, který potřebuje identitu

Možnosti:

Možnost Description
--manifest <path> Cesta k AppxManifest.xml (výchozí: ./appxmanifest.xml)
--no-install Po vytvoření balíček neinstalujte.
--keep-identity Ponechte identitu manifestu beze změn, bez připojení .debug k názvu balíčku a ID aplikace.

Co to dělá:

  • Upraví souběžný manifest spustitelného souboru.
  • Zaregistruje balíček s řídkou strukturou pro digitální identitu.
  • Umožňuje ladění rozhraní API vyžadujících identitu.

Příklady:

# 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

Příkazy manifestu

generování manifestu

Vygenerujte AppxManifest.xml ze šablon.

winapp manifest generate [directory] [options]

argumenty :

Argument Description
directory Adresář pro vygenerování manifestu (výchozí: aktuální adresář)

Možnosti:

Možnost Description
--package-name <name> Název balíčku (výchozí: název složky)
--publisher-name <name> Publisher CN (výchozí hodnota: CN=<current user>)
--version <version> Verze (výchozí hodnota: 1.0.0.0)
--description <text> Popis (výchozí hodnota: Moje aplikace)
--entrypoint <path> Spustitelný soubor nebo skript vstupního bodu
--template <type> Typ šablony: packaged (výchozí) nebo sparse
--logo-path <path> Cesta k souboru obrázku loga
--if-exists <Error\|Overwrite\|Skip> Chování, pokud soubor již existuje (výchozí hodnota: Chyba)

Šablony:

Zástupné symboly manifestu

Vygenerované manifesty používají $placeholder$ tokeny (ohraničené znakem dolaru), které se automaticky vyřeší během balení.

Zástupný symbol Vyřešeno na Příklad
$targetnametoken$ Název spustitelného souboru bez přípony Executable="$targetnametoken$.exe" stane se Executable="MyApp.exe"
$targetentrypoint$ Windows.FullTrustApplication Vždy vyřešeno automaticky

Způsob řešení zástupných symbolů:

  • winapp pack $targetnametoken$ řeší pomocí možnosti --executable nebo automatickým rozpoznáním jediného .exe ve vstupní složce.
  • winapp create-debug-identity určuje $targetnametoken$ z argumentu vstupního bodu, pokud je zadán.
  • winapp manifest generate --executable extrahuje metadata ze spustitelného souboru, ale uchovává $targetnametoken$.exe v manifestu pro pozdější řešení.

Návod

Zachování $targetnametoken$ v manifestu pro zařazení změn zabraňuje pevnému zakódování názvů spustitelných souborů a funguje se sestaveními winapp pack i s Visual Studio.

Příklady:

# 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 aktualizace-aktiv

Vygenerujte všechny požadované soubory MSIX z jednoho zdrojového obrazu.

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

argumenty :

Argument Description
image-path Cesta ke zdrojovému souboru obrázku (PNG, JPG, GIF atd.)

Možnosti:

Možnost Description
--manifest <path> Cesta k AppxManifest.xml souboru (výchozí: prohledat aktuální adresář)

Vezme jeden zdrojový obraz a automaticky vygeneruje všech 12 nezbytných obrazových prostředků MSIX ve správných rozměrech. Prostředky se ukládají do Assets adresáře vzhledem k umístění manifestu.

Příklady:

# 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

Příkazy pro certifikáty a podepisování

Generování certifikátu

Generování vývojových certifikátů pro podepisování balíčků

winapp cert generate [options]

Možnosti:

Možnost Description
--manifest <appxmanifest.xml> Extrahování informací o vydavateli z appxmanifest.xml
--publisher <name> Název vydavatele certifikátu
--output <path> Cesta k výstupnímu souboru certifikátu
--password <password> Heslo certifikátu (výchozí: "heslo")
--valid-days <days> Počet dnů platnosti certifikátu (výchozí hodnota: 365)
--install Nainstalujte certifikát do úložiště místního počítače po vytvoření.
--if-exists <Error\|Overwrite\|Skip> Chování, pokud soubor certifikátu již existuje (výchozí hodnota: Chyba)

Instalace certifikátu

Nainstalujte certifikát do úložiště certifikátů počítače.

winapp cert install <cert-path>

argumenty :

Argument Description
cert-path Cesta k souboru certifikátu k instalaci

Příklady:

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

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

znak

Podepište balíčky MSIX a spustitelné soubory pomocí certifikátů.

winapp sign <file-path> [options]

argumenty :

Argument Description
file-path Cesta k balíčku MSIX nebo spustitelnému souboru pro podepsání

Možnosti:

Možnost Description
--cert <path> Cesta k podpisovému certifikátu
--cert-password <password> Heslo certifikátu (výchozí: "heslo")

Příklady:

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

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

Příkazy nástroje

nástroj

Přistupujte k nástrojům sady Windows SDK přímo. Používá nástroje dostupné v microsoft.Windows.SDK.BuildTools.

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

Dostupné nástroje:

  • makeappx – Vytváření a manipulace s balíčky aplikací
  • signtool - Podepisovat soubory a ověřovat podpisy
  • mt - Nástroj manifestu pro souběžná sestavení
  • A další nástroje sady Windows SDK od Microsoft.Windows.SDK.BuildTools

Příklady:

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

uložit

Spusťte příkaz rozhraní příkazového řádku pro vývojáře v Microsoft Storu. Tento příkaz stáhne rozhraní příkazového řádku pro vývojáře z Microsoft Storu, pokud ještě není staženo. Další informace najdete v Rozhraní příkazového řádku pro vývojáře v Microsoft Storu.

winapp store [args...]

argumenty :

Argument Description
args... Argumenty k přímému předání do msstore příkazového řádku

Příklady:

# 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

Získejte cesty k nainstalovaným komponentám sady Windows SDK.

winapp get-winapp-path [options]

Vrátí cesty k adresáři pracovního prostoru .winapp, k adresářům pro instalaci balíčků a k umístěním generovaných hlaviček.


příkazy Node.js/Electron

Tyto příkazy jsou k dispozici pouze v balíčku NPM.

node create-addon

Generování nativních šablon doplňků jazyka C++ nebo C# pomocí sady Windows SDK a integrace Windows App SDK

npx winapp node create-addon [options]

Možnosti:

Možnost Description
--name <name> Název doplňku (výchozí hodnota: nativeWindowsAddon)
--template Vyberte typ doplňku: cs nebo cpp (výchozí: cpp)
--verbose Povolení podrobného výstupu

Co to dělá:

  • Vytvoří adresář doplňků se soubory šablon.
  • Vygeneruje soubory binding.gyp a addon pomocí příkladů sady Windows SDK.
  • Nainstaluje požadované závislosti npm.
  • Přidá skript sestavení do package.json

Příklady:

# 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-elektron-debug-identity

Přidání identity aplikace do vývojového procesu Electronu pomocí zhuštěného balení. Vyžaduje appxmanifest.xml (vytvořte ho pomocí winapp init nebo winapp manifest generate).

Důležité

Došlo ke známému problému s řídkým balením aplikací Elektron, které způsobí chybové ukončení aplikace při spuštění nebo nevykreslení webového obsahu. Tento problém je opravený ve Windows, ale zatím se nerozšířel na všechna zařízení. Sandboxing v aplikaci Electron můžete zakázat příznakem --no-sandbox jako alternativní řešení. Tento problém nemá vliv na úplné balení MSIX.

Chcete-li zrušit ladicí identitu Electron, použijte winapp node clear-electron-debug-identity.

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

Možnosti:

Možnost Description
--manifest <path> Cesta k vlastnímu appxmanifest.xml (výchozí nastavení: appxmanifest.xml ve stávajícím adresáři)
--no-install Neinstalujte ani neupravujte závislosti; konfigurovat pouze ladicí identitu v Electronu
--keep-identity Zachovat identitu manifestu tak, jak je, bez připojení .debug
--verbose Povolení podrobného výstupu

Příklady:

# 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 clear-elektron-debug-identity

Odeberte identitu balíčku z ladicího procesu Electron tím, že obnovíte původní soubor electron.exe ze zálohy.

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

Možnosti:

Možnost Description
--verbose Povolení podrobného výstupu

Příklady:

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