Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A rendszerhéj befejezése
Parancsok, beállítások és értékek lapkiegészítésének engedélyezése. A beállítási utasításokért tekintse meg a Rendszerhéj-befejezési útmutatót .
# Quick setup for PowerShell (permanent — add to profile)
winapp complete --setup powershell >> $PROFILE
# Or try it in the current session only
winapp complete --setup powershell | Out-String | Invoke-Expression
init
Címtár inicializálása a Windows SDK-val, a Windows App SDK-val, valamint a modern Windows-fejlesztéshez szükséges egyéb eszközökkel.
winapp init [base-directory] [options]
Argumentumok:
-
base-directory- Az alkalmazás/munkaterület alap-/gyökérkönyvtára (alapértelmezett: aktuális könyvtár)
Lehetőségek:
-
--config-dir <path>- Olvasási/tárolási konfigurációt tároló könyvtár (alapértelmezett: aktuális könyvtár) -
--setup-sdks- SDK telepítési mód: "stabil" (alapértelmezett), "előzetes verzió", "kísérleti" vagy "nincs" (SDK-telepítés kihagyása) -
--ignore-config,--no-config– Ne használjon konfigurációs fájlt a verziókezeléshez -
--no-gitignore- Ne frissítse a .gitignore fájlt -
--use-defaults,--no-prompt- Ne kérje a kérést, és használja az összes kérés alapértelmezett értékét -
--config-only– Csak a konfigurációs fájlműveletek kezelése, a csomag telepítésének kihagyása
A következő teendők:
- Konfigurációs fájlt hoz létre
winapp.yaml(csak akkor, ha az SDK-csomagokat felügyeli; kihagyja a következővel--setup-sdks none: ) - Windows SDK és Windows App SDK csomagok letöltése
- C++/WinRT-fejléceket és bináris fájlokat hoz létre
- Package.appxmanifest létrehozása
- Buildelési eszközök beállítása és fejlesztői mód engedélyezése
- A .gitignore frissítése a létrehozott fájlok kizárásához
- Megosztható fájlok tárolója a globális gyorsítótár könyvtárában
Automatikus .NET projekt felismerés:
Ha .csproj fájl található a célkönyvtárban, init egyszerűsített .NET-specifikus folyamatot használ:
- Ellenőrzi és frissíti a
TargetFrameworkegy Windows kompatibilis TFM-hez (példáulnet10.0-windows10.0.26100.0) -
Microsoft.WindowsAppSDKésMicrosoft.Windows.SDK.BuildToolshozzáadása mint NuGetPackageReferencebejegyzések közvetlenül a.csproj. - Létrehoz
Package.appxmanifest, eszközöket és fejlesztési tanúsítványt -
Nem hoz létre
winapp.yamlés nem tölt le C++-előrejelzéseket (NuGet-csomagokhoz használhatódotnet restore)
Példák:
# 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
Tipp: SDK-k telepítése a kezdeti telepítés után
Ha futtatott init--setup-sdks none (vagy kihagyott SDK-telepítést), és később szüksége van az SDK-kra:
# Re-run init to install SDKs - preserves existing files (manifest, etc.)
winapp init --use-defaults --setup-sdks stable
Az előzetes/kísérleti SDK-verziók használata vagy --setup-sdks experimental használata--setup-sdks preview.
visszaállít
Csomagok visszaállítása és fájlok újragenerálása a meglévő winapp.yaml konfiguráció alapján.
winapp restore [options]
Lehetőségek:
-
--config-dir <path>- Winapp.yaml fájlt tartalmazó könyvtár (alapértelmezett: aktuális könyvtár)
A következő teendők:
- Beolvassa a meglévő
winapp.yamlkonfigurációt - SDK-csomagok letöltése/frissítése a megadott verziókra
- C++/WinRT-fejlécek és bináris fájlok újragenerálása
- Megosztható fájlok tárolója a globális gyorsítótár könyvtárában
Megjegyzés:
A winapp init inicializált .NET projektek esetében nincs winapp.yaml. A dotnet restore használata helyett állítsa vissza a NuGet-csomagokat.
Példák:
# Restore from winapp.yaml in current directory
winapp restore
frissít
Frissítse a csomagokat a legújabb verziókra, és frissítse a konfigurációs fájlt.
winapp update [options]
Lehetőségek:
-
--setup-sdks <stable|preview|experimental|none>- SDK telepítési mód:stable(alapértelmezett),preview,experimentalvagynone(kihagyja az SDK-telepítést)
A következő teendők:
- Beolvassa a meglévő
winapp.yamlkonfigurációt az aktuális könyvtárban - Az összes csomag frissítése a legújabb elérhető verziókra
-
winapp.yamlA fájl frissítése új verziószámokkal - C++/WinRT-fejlécek és bináris fájlok újragenerálása
Példák:
# Update packages to latest versions
winapp update
# Update including experimental packages
winapp update --setup-sdks experimental
pack
MSIX-csomagok létrehozása előkészített alkalmazáskönyvtárakból. A célkönyvtárban, az aktuális könyvtárban vagy a beállítással --manifest együtt átadott jegyzékfájlnak (Package.appxmanifestelőnyben részesített, appxmanifest.xml szintén támogatott) szerepelnie kell. (jegyzék futtatása init vagy manifest generate létrehozása)
winapp pack <input-folder> [options]
Argumentumok:
-
input-folder- A csomagolni kívánt alkalmazásfájlokat tartalmazó könyvtár
Lehetőségek:
-
--output <filename>- Kimeneti MSIX-fájl neve (alapértelmezett:<name>_<version>_<arch>.msix, visszaesés<name>_<version>.msix,<name>_<arch>.msixvagy<name>.msixha a verzió/arch nem határozható meg) -
--name <name>- Csomag neve (alapértelmezett: jegyzékből) -
--manifest <path>- A jegyzékfájl elérési útja (Package.appxmanifestelőnyben részesítve,appxmanifest.xmlszintén támogatott; alapértelmezett: automatikus észlelés) -
--cert <path>- A tanúsítvány aláírásának elérési útja (automatikus aláírás engedélyezése) -
--cert-password <password>- Tanúsítvány jelszava (alapértelmezett: "jelszó") -
--generate-cert– Új fejlesztési tanúsítvány létrehozása -
--install-cert– Tanúsítvány telepítése a gépre -
--publisher <name>– Publisher tanúsítványgenerálás neve -
--self-contained– Csomag Windows App SDK futtatókörnyezet -
--skip-pri– PRI-fájllétrehozás kihagyása -
--executable <path>- A végrehajtható fájl elérési útja a bemeneti mappához képest (is--exe). A jegyzékben szolgáló helyőrzők$targetnametoken$feloldására használják.
A következő teendők:
- Package.appxmanifest-fájlok ellenőrzése és folyamata
- Feloldja
$placeholder$a jegyzékben lévő jogkivonatokat (lásd alább a Jegyzékhelyőrzőket ) - Biztosítja a megfelelő keretrendszerfüggőségeket
- Egymás melletti jegyzékek frissítése regisztrációkkal
- Automatikusan felderíti a külső WinRT-összetevőket, és regisztrálja az aktiválható osztályokat (lásd alább a WinRT-összetevők felderítését )
- Önálló WinAppSDK-telepítés kezelése
- Csomag aláírása tanúsítvány megadása esetén
WinRT-összetevő felderítése
Csomagoláskor winapp pack a rendszer automatikusan megvizsgálja a winapp.yaml*.csproj WinRT-összetevőkben definiált NuGet-csomagokat (pl. Win2D). Elemzi a .winmd fájlokat az aktiválható osztálynevek kinyeréséhez, és megkeresi a megvalósítási DLL-eket. A felderített bejegyzések a következőképpen vannak regisztrálva:
-
Keretrendszerfüggő (alapértelmezett): Az aktiválható osztályok bejegyzésként
<InProcessServer>lesznek hozzáadva aPackage.appxmanifest -
Önálló (
--self-contained): Az aktiválható osztályok egymás mellett (SxS) vannak beágyazva a végrehajtható fájlba
Helyőrző felbontás a csomagolás során:
Ha a jegyzék tartalmazza $targetnametoken$ az Executable attribútumot:
- Ha
--executablemeg van adva (a bemeneti mappához viszonyított elérési út), a helyőrzőt a megadott értékre cseréli a rendszer -
winapp packEllenkező esetben fájlokat keres a bemeneti mappa gyökerében.exe– ha pontosan egy található, a rendszer automatikusan használja - Ha nulla vagy több
.exefájl található, hibaüzenet jelenik meg, amely arra kéri, hogy adja meg--executable
Példák:
# 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 WinAppSDK runtime
winapp pack ./dist --generate-cert --install-cert --self-contained
# Package with explicit executable (resolves $targetnametoken$ in manifest)
winapp pack ./dist --executable MyApp.exe
hozzon-létre-hibakeresési-azonosság
Alkalmazásdentitás létrehozása a ritka csomagolással végzett hibakereséshez. Az exe az eredeti helyén marad – Windows társítja hozzá az identitást Add-AppxPackage -ExternalLocation keresztül.
Mikor használja ezt a vs
winapp run: Akkor használjacreate-debug-identity, ha az exe külön van az alkalmazáskódtól (pl. Electron apps whereelectron.exeis innode_modules), vagy ha kifejezetten a ritkán használt csomag viselkedését teszteli. A legtöbb keretrendszer esetében, ahol az exe a build kimeneti mappájában található, használjawinapp runinkább – regisztrál egy teljes laza elrendezési csomagot, és elindítja az alkalmazást. A teljes összehasonlításért tekintse meg a hibakeresési útmutatót .
winapp create-debug-identity [entrypoint] [options]
Argumentumok:
-
entrypoint- Az identitást igénylő végrehajtható (.exe) vagy szkript elérési útja
Lehetőségek:
-
--manifest <path>- Az alkalmazásjegyzékfájl elérési útja vagyPackage.appxmanifestappxmanifest.xml(alapértelmezett: automatikus észlelésPackage.appxmanifestvagyappxmanifest.xmlaz aktuális könyvtárban) -
--no-install– Ne telepítse a csomagot a létrehozás után -
--keep-identity- Tartsa meg a jegyzék-identitást as-is, anélkül, hogy hozzáfűzne.debuga csomag nevére és az alkalmazásazonosítóra
A következő teendők:
- Módosítja a programfájl mellékelt manifestjét
- Ritka csomag regisztrálása identitáshoz
- Engedélyezi az identitást igénylő API-k hibakeresését
Példák:
# 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
# Create identity for hosted app script
winapp create-debug-identity app.py
jegyzékfájl
Package.appxmanifest-fájlok létrehozása és kezelése.
manifest létrehozása
Package.appxmanifest létrehozása sablonokból.
winapp manifest generate [directory] [options]
Argumentumok:
-
directory- Jegyzékfájl létrehozása a címtárban (alapértelmezett: aktuális könyvtár)
Lehetőségek:
-
--package-name <name>- Csomagnév (alapértelmezett: mappanév) -
--publisher-name <name>– Publisher CN (alapértelmezett: CN=<felhasználó>) -
--version <version>- Verzió (alapértelmezett: "1.0.0.0") -
--description <text>- Leírás (alapértelmezett: "Saját alkalmazás") -
--entrypoint <path>- Belépési pont végrehajtható vagy szkript -
--template <type>- Sablon típusa:packaged(alapértelmezett) vagysparse -
--logo-path <path>- Az embléma képfájl elérési útja -
--if-exists <Error|Overwrite|Skip>- Viselkedés, ha a jegyzékfájl már létezik a célútvonalon (alapértelmezett:Error)
Sablonok:
-
packaged- Standard csomagolt alkalmazásjegyzék -
sparse- Alkalmazásmanifeszt ritka/külső helyen csomagolva
Jegyzékhelyőrzők
A létrehozott jegyzékek olyan $placeholder$ tokeneket használnak, amelyek dollárjellel elhatároltak, és a csomagoláskor automatikusan feloldódnak.
| Placeholder | Megoldva | Example |
|---|---|---|
$targetnametoken$ |
Végrehajtható név bővítmény nélkül |
Executable="$targetnametoken$.exe" → Executable="MyApp.exe" |
$targetentrypoint$ |
Windows.FullTrustApplication |
Mindig automatikusan feloldva |
Ez ugyanazt a konvenciót követi, amelyet Visual Studio projektsablonok használnak, így a jegyzékek hordozhatóak az eszközök között.
A helyőrzők megoldása:
-
winapp pack— A csomagolás$targetnametoken$során a megoldás a--executablebeállítással vagy a bemeneti mappában lévő önálló.exefájl automatikus észlelésével oldható fel. Ha több (vagy nulla).exefájl található, és--executablenincs megadva, hibaüzenet jelenik meg. -
winapp create-debug-identity— Amikor megad egy belépésipont-argumentumot,$targetnametoken$az abból lesz feloldva. Belépési pont nélkül a végrehajtható helyőrzőt már fel kell oldani a jegyzékben. -
winapp manifest generate --executable— Ha--executablemeg van adva, a rendszer kinyeri a jegyzék metaadatait (verzió, leírás) és ikonokat a végrehajtható fájlból, de a létrehozott jegyzékfájl továbbra is használ$targetnametoken$.exe; ezt a helyőrzőt később feloldja (példáulwinapp pack).winapp create-debug-identity
PS: A
$targetnametoken$megőrzése a beadott jegyzékben elkerüli a végrehajtható nevek kemény kódolását, éswinapp packés Visual Studio buildekkel is működik.
Példák:
# 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
jegyzék add-alias
Végrehajtási alias (uap5:AppExecutionAlias) hozzáadása a Package.appxmanifesthez. Ez lehetővé teszi a csomagolt alkalmazás parancssorból való elindítását az aliasnév beírásával.
winapp manifest add-alias [options]
Lehetőségek:
-
--name <alias>- Alias neve (pl.myapp.exe). Alapértelmezett: a jegyzékben szereplő attribútumbólExecutablekövetkeztet. -
--manifest <path>- A Package.appxmanifest elérési útja (alapértelmezett: keresés az aktuális könyvtárban) -
--app-id <id>- Alkalmazásazonosító az alias hozzáadásához (alapértelmezett: első alkalmazáselem)
A következő teendők:
- Beolvassa a jegyzékfájlt, és az aliast kikövetkezése az
Executableattribútumból (a helyőrzők, például$targetnametoken$.exea ) - Hozzáadja a
uap5névtér deklarációt, ha még nincs jelen - Blokk hozzáadása
<Extensions>a célalkalmazás-elemen<uap5:AppExecutionAlias>belül - Ha az alias már létezik, jelenti és sikeresen kilép
Példák:
# Add alias inferred from Executable attribute (e.g. $targetnametoken$.exe)
winapp manifest add-alias
# Add alias with explicit name
winapp manifest add-alias --name myapp.exe
# Add alias to specific manifest
winapp manifest add-alias --manifest ./dist/Package.appxmanifest
jegyzék-frissítési eszközök
Egyetlen forrásrendszerképből hozza létre az összes szükséges MSIX-rendszerkép-objektumot.
winapp manifest update-assets <image-path> [options]
Argumentumok:
-
image-path- A forrásképfájl elérési útja (PNG, JPG, SVG, ICO, GIF, BMP stb.)
Lehetőségek:
-
--manifest <path>- A Package.appxmanifest fájl elérési útja (alapértelmezett: keresés az aktuális könyvtárban) -
--light-image <path>– Egy különálló forráskép elérési útja világos témavariánsokhoz
Description:
Egyetlen forrásrendszerképet hoz létre, és az MSIX-rendszerkép-objektumok átfogó készletét hozza létre a jegyzék eszközhivatkozásai alapján:
A jegyzékben hivatkozott összes eszköz esetében:
-
5 skálázási változat – alap (utótag nélkül),
.scale-125,.scale-150,.scale-200.scale-400
Az alkalmazás ikonja (Square44x44Logo / AppList, 44×44 alap):
-
14 lemezes célváltozat –
.targetsize-{16,20,24,30,32,36,40,48,60,64,72,80,96,256} -
14 nem iktatott célértékváltozat –
.targetsize-{size}_altform-unplated
Additionally:
-
app.ico – Többfelbontású ICO-fájl (16, 24, 32, 48, 256) a rendszerhéj-integrációhoz. Ha egy meglévő
.icofájl található az eszközkönyvtárban (példáulAppIcon.icoegy projektsablonból), a rendszer a helyben cseréli le ahelyett, hogy duplikátumot hoz létre
A következővel --light-image:
-
Világos téma a változatok célba osztása –
.targetsize-{size}_altform-lightunplated(alkalmazásikon) -
Világos témaskálázási változatok –
.scale-{factor}_altform-colorful_theme-light(csempék, áruház emblémája)
SVG-támogatás: Az SVG-fájlok teljes mértékben támogatottak forrásképként. Ezek vektorokként jelennek meg közvetlenül minden célméretben, így minden felbontásban pixel-tökéletes eredményeket eredményeznek.
A parancs a képarány fenntartása mellett arányosan skálázza a képeket, és szükség esetén transzparens háttérrel középre állítja őket. Az állományok a Assets könyvtárba vannak mentve a jegyzék helyéhez képest.
Példák:
# Generate assets with auto-detected manifest
winapp manifest update-assets mylogo.png
# Use an SVG source for best quality at all sizes
winapp manifest update-assets mylogo.svg
# Specify manifest location explicitly
winapp manifest update-assets mylogo.png --manifest ./dist/Package.appxmanifest
# Generate light theme variants from a separate image
winapp manifest update-assets mylogo.png --light-image mylogo-light.png
# Use the same image for both (generates all MRT light theme qualifiers)
winapp manifest update-assets mylogo.png --light-image mylogo.png
# With verbose output
winapp manifest update-assets mylogo.png --verbose
futtat
Hozzon létre egy laza elrendezéscsomagot egy buildkimeneti mappából, regisztrálja azt Windows a Windows.Management.Deployment.PackageManager API használatával, és indítsa el az alkalmazást – a hibakereséshez szimulálva a teljes MSIX-telepítést. A hibakereső melléklet folyamatazonosítóját adja vissza.
A legtöbb keretrendszer (.NET, C++, Rust, Flutter, Tauri) esetében ez az előnyben részesített parancs a csomagidentitással való hibakereséshez. Ellentétben
create-debug-identitya ritka csomag egyetlen exe regisztrálja,winapp runa teljes mappát laza elrendezési csomagként regisztrálja, ugyanúgy, mint egy valódi MSIX-telepítés. A gyakori hibakeresési munkafolyamatokhoz tekintse meg a hibakeresési útmutatót .
winapp run <input-folder> [options]
Argumentumok:
-
input-folder- A futtatni kívánt alkalmazást tartalmazó könyvtár (kötelező)
Lehetőségek:
-
--manifest <path>- A Package.appxmanifest elérési útja (alapértelmezett: automatikus észlelés a bemeneti mappából vagy az aktuális könyvtárból) -
--output-appx-directory <path>- Kimeneti könyvtár a laza elrendezési csomaghoz (alapértelmezett:AppXa bemeneti mappa könyvtárában) -
--args <string>- Az alkalmazásnak átadni kívánt parancssori argumentumok. Alternatív megoldásként használjon--argumentumokat a menekülés elkerüléséhez (pl.winapp run . -- --flag value). -
--no-launch– Csak a hibakeresési identitás létrehozása és a csomag regisztrálása az alkalmazás elindítása nélkül -
--with-alias- Indítsa el az alkalmazást az AUMID-aktiválás helyett annak végrehajtási aliasával. Az alkalmazás az aktuális terminálon fut örökölt stdin/stdout/stderr használatával. Szüksége van egyuap5:ExecutionAliasjegyzékre (egy hozzáadásához).winapp manifest add-aliasNem kombinálható a következővel--no-launch: . Nem kombinálható a következővel--json: . -
--debug-output- Rögzítse azOutputDebugStringüzeneteket és az első véletlen kivételeket az elindított alkalmazásból. A keretrendszer zaja (WinUI, COM, DirectX) szűrve van a konzol kimenetéből; a teljes naplófájl mindent rögzít. Ha az alkalmazás összeomlik, automatikusan rögzít egy minidumpot, és elemzi, hogy megjelenítse a kivétel típusát, az üzenetet és a verem nyomkövetését a forrásfájl:sorszámokkal (feloldva a build kimeneti mappájában lévő PDF-fájlokból). A felügyelt (.NET) összeomlásokat a rendszer azonnal elemzi külső eszközök nélkül. A natív (C++/WinRT) összeomlások a modulneveket és az eltolásokat jelenítik meg. Egyszerre csak egy hibakereső csatolható egy folyamathoz, így más hibakeresők (Visual Studio, VS Code) nem használhatók egyszerre. Használja--no-launchinkább, ha másik hibakeresőt kell csatolnia. Nem kombinálható a következővel--no-launch: . Nem kombinálható a következővel--json: . -
--symbols– PDF-szimbólumok letöltése Microsoft Szimbólumkiszolgálóról a natív összeomlások részletesebb elemzéséhez feloldott függvénynevekkel. Csak a--debug-output. Ha nincs megadva, és natív összeomlás történik, a kimenet a jelző hozzáadását javasolja. Először futtatja a letöltési szimbólumokat, és helyileg gyorsítótárazza őket; a későbbi futtatások a gyorsítótárat használják. -
--unregister-on-exit– Az alkalmazás kilépése után törölje a fejlesztési csomag regisztrációjának megszüntetését. Csak a fejlesztési módban regisztrált csomagokat távolítja el. Nem kombinálható a következővel--no-launch: . -
--detach- Indítsa el az alkalmazást, és azonnal térjen vissza anélkül, hogy várnia kell a kilépésre. Olyan CI-/automatizálási alkalmazásokhoz használható, ahol az alkalmazással az indítás után kell kommunikálnia. A PID nyomtatása stdoutra (vagy JSON-ban a következővel--json: ). Nem kombinálható a--no-launch,--debug-output,--with-aliasvagy--unregister-on-exit. -
--clean– Az újratelepítés előtt távolítsa el a meglévő csomag alkalmazásadatait (LocalState, beállítások stb.). Alapértelmezés szerint az alkalmazásadatok megmaradnak az újratelepítések során. -
--json- A kimenetet JSON-ként formázza programozott felhasználás céljából (pl. CI/automation). Hasznos a--detachPID rögzítéséhez. Nem kombinálható a következővel--with-alias: vagy--debug-output.
Alkalmazásadatok megőrzése:
Alapértelmezés szerint winapp run megőrzi az alkalmazás adatait (LocalState, RoamingStatestb Settings.) az újbóli üzembe helyezéskor. Ha az alkalmazás adatokat ír a csomagkörnyezetbe ApplicationData.Current.LocalFolder vagy Environment.GetFolderPath(SpecialFolder.LocalApplicationData) azon belül, az adatok a meghívások során winapp run is megmaradnak.
Akkor érdemes használni --clean , ha új kezdésre van szüksége (például a sérült állapot visszaállításához vagy az első futtatási viselkedés teszteléséhez).
A következő teendők:
- Megkeresi vagy létrehozza a Package.appxmanifestet
- Hibakeresési identitás létrehozása és regisztrálása laza elrendezési csomag használatával
- Kiszámítja az alkalmazásfelhasználói modell azonosítóját (AUMID)
- Elindítja az alkalmazást a regisztrált identitással (hacsak nincs
--no-launchmegadva) - A hibakereső melléklet folyamatazonosítójának (PID) nyomtatása
Példák:
# Register debug identity and launch app from build output
winapp run ./bin/Debug
# Launch with custom manifest and arguments
winapp run ./dist --manifest ./out/Package.appxmanifest --args "--my-flag value"
# Pass arguments after -- to avoid escaping (equivalent to --args)
winapp run ./bin/Debug -- --my-flag value
# Specify output directory for loose layout package
winapp run ./bin/Release --output-appx-directory ./AppXDebug
# Register identity without launching
winapp run ./bin/Debug --no-launch
# Launch via execution alias (console apps run in current terminal)
winapp run ./bin/Debug --with-alias
# Launch and capture OutputDebugString messages and crash diagnostics
winapp run ./bin/Debug --debug-output
# Download native symbols for richer crash analysis (C++/WinRT crashes)
winapp run ./bin/Debug --debug-output --symbols
# Combine with execution alias to debug console apps inline
winapp run ./bin/Debug --with-alias --debug-output
# Run and automatically clean up registration on exit
winapp run ./bin/Debug --with-alias --unregister-on-exit
# Launch and detach immediately (useful for CI/automation)
winapp run ./bin/Debug --detach
# Detach with JSON output (returns PID for scripting)
winapp run ./bin/Debug --detach --json
# Wipe application data (LocalState, settings) and start fresh
winapp run ./bin/Debug --clean
MSBuild tulajdonságok (NuGet-csomag):
A Microsoft.Windows.SDK.BuildTools.WinApp NuGet-csomag használatakor a dotnet run automatikusan meghívja winapp run. A következő MSBuild tulajdonságok állíthatók be a .csproj vezérlési viselkedéshez:
| Ingatlan | Alapértelmezett | Leírás |
|---|---|---|
EnableWinAppRunSupport |
true |
A futtatás támogatásának engedélyezése/letiltása |
WinAppLaunchArgs |
(üres) | Az alkalmazásnak az indításkor átadandó argumentumok |
WinAppRunUseExecutionAlias |
false |
Indítás végrehajtási aliason keresztül az AUMID aktiválása helyett |
WinAppRunNoLaunch |
false |
Csak identitás regisztrálása indítás nélkül |
WinAppRunDebugOutput |
false |
Üzenetek és első esélyű kivételek rögzítése OutputDebugString . Egyszerre csak egy hibakereső csatolható (megakadályozza a VS/VS Code használatát). Ehelyett WinAppRunNoLaunch használjon másik hibakeresőt. |
<PropertyGroup>
<WinAppRunUseExecutionAlias>true</WinAppRunUseExecutionAlias>
<WinAppRunDebugOutput>true</WinAppRunDebugOutput>
</PropertyGroup>
Unregister
Oldaltöltésű fejlesztési csomag regisztrációja törlése. Csak a fejlesztési módban regisztrált csomagokat távolítja el (pl. via winapp run vagy create-debug-identity). A tárolóra vagy AZ MSIX-ra telepített csomagok soha nem lesznek eltávolítva.
winapp unregister [options]
Lehetőségek:
-
--manifest <path>- A Package.appxmanifest elérési útja (alapértelmezett: automatikus észlelés az aktuális könyvtárból) -
--force- Hagyja ki a telepítési hely könyvtárának ellenőrzését, és törölje a regisztrációt még akkor is, ha a csomagot egy másik projektfáról regisztrálták -
--json- Kimenet formázása JSON-ként
A következő teendők:
- Beolvassa a csomag nevét a jegyzékből
- Mindkettőt és
{name}.debugcsomagot keres{name}(a hibakeresési változatot a következő hozzacreate-debug-identitylétre: ) - Ellenőrzi, hogy minden csomag fejlesztési módban lett-e regisztrálva (
IsDevelopmentMode == true) - Ellenőrzi, hogy a csomag telepítési helye az aktuális könyvtárfa alatt van-e (kivéve)
--force - Az egyező csomagok regisztrációja törlése
Példák:
# Unregister from current directory (auto-detects manifest)
winapp unregister
# Unregister with explicit manifest
winapp unregister --manifest ./Package.appxmanifest
# Force unregister even if registered from a different project tree
winapp unregister --force
# JSON output for scripting
winapp unregister --json
cert
Fejlesztési tanúsítványok létrehozása, vizsgálata és telepítése.
tanúsítvány létrehozása
Fejlesztési tanúsítványok létrehozása a csomagaláíráshoz.
winapp cert generate [options]
Lehetőségek:
-
--manifest <Package.appxmanifest>- Közzétevői információk kinyerve a Package.appxmanifestből -
--publisher <name>– Publisher tanúsítvány neve -
--output <path>- Kimeneti tanúsítványfájl elérési útja (támogatja az abszolút és relatív elérési utakat) -
--password <password>- Tanúsítvány jelszava (alapértelmezett: "jelszó") -
--valid-days <valid-days>- A tanúsítvány érvényes napjainak száma (alapértelmezett: 365) -
--install– A tanúsítvány telepítése a helyi géptárolóba a létrehozás után -
--if-exists <Error|Overwrite|Skip>– Viselkedés beállítása, ha a tanúsítványfájl már létezik (alapértelmezett: Hiba) -
--export-cer- Fájl exportálása.cer(csak nyilvános kulcs) a.pfxfájl mellett. Hasznos a nyilvános tanúsítvány külön-külön történő terjesztéséhez a megbízhatósági telepítéshez. -
--json- A kimenet formázása JSON-ként programozott felhasználás céljából. A rendszer JSON ({"error": "..."}) néven is visszaadja a hibákat.
tanúsítványadatok
Tanúsítványadatok megjelenítése PFX-fájlból. Hasznos, ha aláírás előtt ellenőrzi, hogy egy tanúsítvány megfelel-e a jegyzéknek.
winapp cert info <cert-path> [options]
Argumentumok:
-
cert-path- A tanúsítványfájl elérési útja (PFX)
Lehetőségek:
-
--password <password>- A PFX-fájl jelszava (alapértelmezett: "jelszó") -
--json- Kimenet formázása JSON-ként
tanúsítvány telepítése
Telepítse a tanúsítványt a gépi tanúsítványtárolóba.
winapp cert install <cert-path> [options]
Argumentumok:
-
cert-path– A telepíteni kívánt tanúsítványfájl elérési útja
Példák:
# Generate certificate for specific publisher
winapp cert generate --publisher "CN=My Company" --output ./mycert.pfx
# Generate certificate and export public key .cer file
winapp cert generate --publisher "CN=My Company" --export-cer
# Generate certificate with JSON output (for scripting)
winapp cert generate --publisher "CN=My Company" --json
# View certificate details
winapp cert info ./mycert.pfx
# View certificate details as JSON
winapp cert info ./mycert.pfx --json
# Install certificate to machine
winapp cert install ./mycert.pfx
jel
MSIX-csomagokat és végrehajtható fájlokat írhat alá tanúsítványokkal.
winapp sign <file-path> [options]
Argumentumok:
-
file-path- Az MSIX-csomag elérési útja, vagy végrehajtható az aláíráshoz
Lehetőségek:
-
--cert <path>- Tanúsítvány aláírásának elérési útja -
--cert-password <password>- Tanúsítvány jelszava (alapértelmezett: "jelszó")
Példák:
# Sign MSIX package
winapp sign MyApp.msix --cert ./mycert.pfx
# Sign executable
winapp sign ./bin/MyApp.exe --cert ./mycert.pfx --cert-password mypassword
create-external-catalog
Hozzon létre egy katalógusfájlt CodeIntegrityExternal.cat , amely a megadott könyvtárakból származó végrehajtható fájlok kivonatait tartalmazza. Ez a katalógus az MSIX ritka csomagjegyzékeiben (AllowExternalContent) található TrustedLaunch jelzővel használható, hogy lehetővé tegye a csomagban nem szereplő külső fájlok végrehajtását.
Ez hasonló ahhoz, ahogyan signtool.exe az MSIX-csomagok aláírásakor létrejön AppxMetadata\CodeIntegrity.cat , de létrehoz egy külső katalógust a ritka/külső hely csomagolásához.
winapp create-external-catalog <input-folder> [options]
Argumentumok:
-
input-folder– Egy vagy több feldolgozandó végrehajtható fájlt tartalmazó könyvtár. Több könyvtár elkülönítése pontosvesszőkkel (pl."dir1;dir2")
Lehetőségek:
-
--recursive,-r- Alkönyvtárak fájljainak belefoglalása -
--use-page-hashes- Oldalkivonatok hozzáadása a katalógus létrehozásakor (nagyobb katalógust hoz létre laponkénti kivonatadatokkal) -
--compute-flat-hashes– A katalógus létrehozásakor adjon meg egybesimított fájlkivonatokat -
--if-exists <Error|Overwrite|Skip>– Viselkedés, ha a kimeneti fájl már létezik (alapértelmezett:Error) -
--output,-o- Kimeneti katalógus fájl elérési útja. Ha nincs megadva,CodeIntegrityExternal.cataz aktuális könyvtárban jön létre. Ha egy könyvtár van megadva, a program hozzáfűzi az alapértelmezett fájlnevet.
A következő teendők:
- Futtatható fájlok megadott könyvtárainak vizsgálata (kódszakaszokkal rendelkező PE bináris fájlok)
- Katalógusdefiníciós fájlt (CDF) hoz létre az összes talált végrehajtható fájl kivonatával
- Windows CryptoCAT API-kat használ a
.catkatalógusfájl létrehozásához - A nem végrehajtható fájlok (például
.txtkódszakaszok.dllnélkül) automatikusan ki lesznek hagyva
Példák:
# Generate catalog for all executables in a directory
winapp create-external-catalog ./bin
# Include files in subdirectories
winapp create-external-catalog ./bin --recursive
# Specify a custom output path
winapp create-external-catalog ./bin --output ./dist/CodeIntegrityExternal.cat
# Overwrite existing catalog
winapp create-external-catalog ./bin --if-exists Overwrite
# Skip generation if catalog already exists
winapp create-external-catalog ./bin --if-exists Skip
# Include page hashes (for stricter code integrity validation)
winapp create-external-catalog ./bin --use-page-hashes
# Process multiple directories
winapp create-external-catalog "./bin;./lib" --recursive
# Combine multiple options
winapp create-external-catalog ./bin --recursive --use-page-hashes --compute-flat-hashes --output ./dist/CodeIntegrityExternal.cat --if-exists Overwrite
Mikor érdemes használni:
Ezt a parancsot akkor használja, ha olyan ritka MSIX-csomagot hoz létre, amely a TrustedLaunch használatával ellenőrzi a külső végrehajtható fájlokat. A tipikus munkafolyamat a következő:
-
winapp manifest generate --template sparse— Ritka jegyzék létrehozása aAllowExternalContent -
winapp create-external-catalog ./bin— Hozza létre az alkalmazás végrehajtható fájljaihoz tartozó kódintegritási katalógust -
winapp pack— A jegyzék, az eszközök és a katalógus becsomagolása EGY MSIX-be
eszköz
Használja a Windows SDK-eszközöket közvetlenül. A Microsoft.Windows-ban elérhető eszközöket használja. SDK. BuildTools
winapp tool <tool-name> [tool-arguments]
Elérhető eszközök:
-
makeappx- Alkalmazáscsomagok létrehozása és kezelése -
signtool– Fájlok aláírása és aláírások ellenőrzése -
mt- Manifeszt eszköz egymás melletti szerelvényekhez - És más Windows SDK-eszközöket Microsoft.Windows. SDK. BuildTools
Példák:
# Use signtool to verify signature
winapp tool signtool verify /pa MyApp.msix
tárol
Futtassa a Microsoft Store fejlesztői parancssori felületének parancsát. Ez a parancs letölti a Microsoft Store fejlesztői parancssori felületet, ha még nem töltötte le. További információ a Microsoft Store fejlesztői parancssori felületről.
winapp store [args...]
Argumentumok:
-
args...– A parancssorimsstorefelületnek közvetlenül továbbítandó argumentumok. Az elérhető parancsokat és lehetőségeket az MSStore CLI dokumentációjában találja.
A következő teendők:
- Biztosítja, hogy a Microsoft Store fejlesztői parancssori felület (
msstore) le legyen töltve és elérhető legyen a rendszeren. - Az összes argumentumot továbbítja a parancssori
msstorefelületre. - A kimenetet közvetlenül a terminálban megjelenítő parancsot futtatja.
Példák:
# 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
A telepített Windows SDK-összetevők elérési útjai.
winapp get-winapp-path [options]
Mit ad vissza:
- A munkaterület könyvtárának
.winappelérési útjai - Csomagtelepítési könyvtárak
- Generált fejléchelyek
node create-addon (bővítmény létrehozása)
(Csak NPM-csomagban érhető el) Natív C++ vagy C# bővítménysablonok létrehozása Windows SDK-val és Windows App SDK integrációval.
npx winapp node create-addon [options]
Lehetőségek:
-
--name <name>- Addon name (alapértelmezett: "nativeWindowsAddon") -
--template- Válassza ki a bővítmény típusát. A beállítások vagycscpp(alapértelmezett:cpp) -
--verbose– Részletes kimenet engedélyezése
A következő teendők:
- Kiegészítő könyvtár létrehozása sablonfájlokkal
- Kötés.gyp és addon.cc generál Windows SDK-példákkal
- Telepíti a szükséges npm-függőségeket (nan, node-addon-api, node-gyp)
- Hozzáad egy buildszkriptet a package.json fájlhoz
Példák:
# Generate addon with default name
npx winapp node create-addon
# Generate custom named addon
npx winapp node create-addon --name myWindowsAddon
node add-electron-debug-identity
(Csak NPM-csomagban érhető el) Alkalmazásdentitás hozzáadása az Electron fejlesztési folyamatához a ritka csomagolás használatával. Package.appxmanifest szükséges (hozzon létre egyet, vagy winapp manifest generate ha nem rendelkezik ilyennelwinapp init).
Fontos
Ismert probléma merült fel a ritkán csomagolt Electron-alkalmazások esetében, amely miatt az alkalmazás összeomlik az indításkor, vagy nem jeleníti meg a webes tartalmat. A problémát kijavítottuk Windows, de még nem propagáltuk külső Windows eszközökre. Ha ezt a problémát a hívás add-electron-debug-identityután tapasztalja, letilthatja a tesztkörnyezetet az Electron alkalmazásban hibakeresési célokra a --no-sandbox jelzővel. Ez a probléma nem érinti a teljes MSIX-csomagolást.
Az Electron hibakeresési identitásának visszavonásához használja a winapp node clear-electron-debug-identity.
npx winapp node add-electron-debug-identity [options]
Lehetőségek:
| Lehetőség | Leírás |
|---|---|
--manifest <path> |
Az egyéni Package.appxmanifest elérési útja (alapértelmezett: Package.appxmanifest az aktuális könyvtárban) |
--no-install |
Ne telepítse vagy módosítsa a függőségeket; csak az Electron hibakeresési identitásának konfigurálása |
--keep-identity |
A manifest identitás as-is megőrzése a csomag nevének és alkalmazásazonosítójának nélkül .debug hozzáfűzése. |
--verbose |
Részletes kimenet engedélyezése |
A következő teendők:
- Hibakeresési identitás regisztrálása electron.exe folyamathoz
- Lehetővé teszi az identitásigényes API-k tesztelését az Electron-fejlesztésben
- Meglévő Package.appxmanifest használata identitáskonfigurációhoz
Példák:
# 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/Package.appxmanifest
node clear-electron-debug-identity
(Csak NPM-csomagban érhető el) Távolítsa el a csomagdentitást az Electron hibakeresési folyamatából az eredeti electron.exe biztonsági mentésből való visszaállításával.
npx winapp node clear-electron-debug-identity [options]
Lehetőségek:
| Lehetőség | Leírás |
|---|---|
--verbose |
Részletes kimenet engedélyezése |
A következő teendők:
- Visszaállítja a electron.exe a biztonsági másolatból, amelyet
add-electron-debug-identity - A visszaállítás után eltávolítja a biztonsági mentési fájlokat
- Az Electron eredeti állapotát adja vissza csomagadentitás nélkül
Példák:
# Remove identity from Electron development process
npx winapp node clear-electron-debug-identity
Globális beállítások
Minden parancs támogatja ezeket a globális beállításokat:
-
--verbose,-v- Részletes kimenet engedélyezése részletes naplózáshoz -
--quiet,-q- Folyamatjelző üzenetek letiltása -
--help,-h- Parancs súgójának megjelenítése
Globális gyorsítótár könyvtára
A Winapp létrehoz egy könyvtárat a több projekt között megosztható fájlok gyorsítótárazásához.
A winapp alapértelmezés szerint globális gyorsítótár-címtárként hoz létre egy könyvtárat $UserProfile/.winapp .
Másik hely használatához állítsa be a környezeti változót WINAPP_CLI_CACHE_DIRECTORY .
A parancsmagban:
REM Set a custom location for winapp's global cache
set WINAPP_CLI_CACHE_DIRECTORY=d:\temp\.winapp
A PowerShellben és a pwsh-ban:
# Set a custom location for winapp's global cache
$env:WINAPP_CLI_CACHE_DIRECTORY=d:\temp\.winapp
A Winapp automatikusan létrehozza ezt a könyvtárat, amikor olyan parancsokat futtat, mint vagy initrestore.
ui
Az UI-automatizálás (UIA) használatával vizsgálja meg és használja az Windows alkalmazás felhasználói felületét.
winapp ui [command] [options]
Parancsok:
-
status– Csatlakozás az alkalmazáshoz és adatok megjelenítése -
inspect- Elemfa megtekintése -
search– Elemek keresése választó szerint -
get-property– Elem tulajdonságainak olvasása -
get-text/get-value- Érték/szöveg olvasása elemből (TextPattern, ValuePattern vagy Name) -
screenshot– Ablak/elem rögzítése PNG-ként (automatikusan rögzíti a párbeszédpaneleket külön) -
invoke- Elem aktiválása (kattintás, váltógomb, kibontás) -
click- Kattintson az elemre az egérszimuláción keresztül (olyan vezérlők esetén, amelyek nem támogatják a meghívást) -
set-value– Érték beállítása szerkeszthető elemen (szöveg, szám) -
focus– Billentyűzetfókusz áthelyezése -
scroll-into-view- Látható görgetési elem -
wait-for- Várakozás az elemállapotra -
list-windows– Alkalmazás összes ablakának listázása -
get-focused– Az aktuálisan szűrt elem jelentése
Lehetőségek:
-
-a, --app <app>- Célalkalmazás (név, cím vagy PID) -
-w, --window <hwnd>- Célablak HWND szerint (stabil)
A teljes dokumentációt a docs/ui-automation.md fájlban találja.
Windows developer