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.
Ez az útmutató bemutatja, hogyan használhatja a Winapp CLI-t egy WinUI 3-alkalmazás teljes fejlesztési ciklusában: hogyan hozhat létre egy projektet egy hivatalos sablonból, hogyan fordíthatja le és indíthatja el csomagazonossággal, összeomlások hibakeresése, vezérlők és API-k keresése, a felhasználói felület automatizálása és aláírt MSIX-csomag létrehozása. Minden lépés a parancssorból fut, így bármely szerkesztőben, CI-ben és AI-alapú kódolóügynökökkel is működik.
A WinUI-projektsablonok már tartalmaznak egy Package.appxmanifest elemet, így WinUI-alkalmazáshoz nem kell futtatnia a(z) winapp init parancsot. Ha olyan meglévő .NET alkalmazáshoz ad hozzá csomagidentitást, amely nem használja a WinUI-t, olvassa el helyette a Winapp CLI használata .NET című témakört.
Prerequisites
Windows 10 1809-es vagy újabb verziója, illetve Windows 11.
A .NET SDK 8.0.100-es vagy újabb verziója. A kísérleti Reactor-sablonokhoz a .NET 10 SDK szükséges. A Winapp CLI nem telepíti az eszközláncokat, ezért a
winapp newéswinapp runleáll, és útmutatást ad, ha hiányzik a .NET SDK.winapp CLI:
winget install Microsoft.winappcli --source wingetFejlesztői mód, amelyet a Windows megkövetel az alkalmazás buildkimenetből való regisztrálásához. Kapcsolja be a(z) Beállítások > Rendszer > Fejlesztőknek menüben. Hogy ez mit változtat a számítógépén, lásd: Biztonság.
WinUI-alkalmazás létrehozása
winapp new a egy WinUI-alkalmazást hoz létre a hivatalos Microsoft.WindowsAppSDK.WinUI.CSharp.Templates csomagból. Igény szerint telepíti vagy frissíti a sabloncsomagot, majd meghívja dotnet new Önt.
# Pick a template and a name interactively
winapp new
# Or create a NavigationView app without prompts
winapp new --name MyApp --template winui-navview --use-defaults
Futtassa a winapp new --list parancsot a telepített csomag sablonjainak megtekintéséhez. A csomag az alábbi sablonokat tartalmazza:
| Template | Description |
|---|---|
winui |
Minimális üres XAML-alkalmazás (alapértelmezett). Lásd a képernyőképet |
winui-navview |
XAML-alkalmazás NavigationView-felülettel. Lásd a képernyőképet |
winui-tabview |
XAML-alkalmazás TabView-felülettel. Lásd a képernyőképet |
winui-mvvm |
XAML-alkalmazás, amely az MVVM-mintát használja a CommunityToolkit.Mvvm használatával. Lásd a képernyőképet |
winui-lib |
WinUI osztálykódtár |
winui-unittest |
Csomagolt MSTest-projekt WinUI-egységtesztekhez |
reactor, reactor-mvu, reactor-navview, reactor-tabview |
Kísérleti. Csak C# nyelven írt WinUI-alkalmazások XAML nélkül |
Note
A Reactor-sablonok előzetes Microsoft.UI.Reactor csomagokra hivatkoznak. Az API-k egy későbbi kiadásban módosíthatók vagy eltávolíthatók.
Minden beállításhoz tekintse meg a newparancshivatkozást.
Fordítás és futtatás identitással
A projektmappából winapp run felépíti a projektet, telepíti az architektúrának megfelelő Windows App SDK futtatókörnyezetet, ha az hiányzik, regisztrálja az alkalmazást a csomag identitásával, és elindítja azt.
cd MyApp
winapp run
winapp run Elfogadja a projektfájlt, a solutionfájlt, az egyiket tartalmazó mappát vagy a buildkimenet mappáját:
# A specific project and configuration
winapp run .\MyApp.csproj -c Release --arch arm64
# A solution: winapp CLI finds the single app project and skips libraries and tests
winapp run .\MySolution.sln
# A solution with more than one app project
winapp run .\MySolution.sln --project MyApp
# Build output that you produced yourself
winapp run .\bin\x64\Debug\net10.0-windows10.0.26100.0\win-x64
A winapp CLI felolvassa a projekt WindowsPackageType tulajdonságát, hogy eldöntse, hogyan kell elindítani. A csomagolt projekt csomagidentitással fut. Az a projekt, amely a(z) WindowsPackageType értékét None értékre állítja, kicsomagolatlan alkalmazásként, identitás nélkül fut. Csomagolt projekt csomagolatlanként való futtatásához adja át a tulajdonságot a parancssorban:
winapp run -p WindowsPackageType=None
További hasznos lehetőségek közé tartozik --clean az előző regisztráció és az alkalmazás mentett adatainak (LocalState és beállítások) eltávolítása egy tiszta első futtatáshoz, --no-launch a regisztráció az alkalmazás indítása nélkül, valamint --detach --json a folyamatazonosító visszaadása és kilépés, hogy a szkriptek és ügynökök továbbra is működhessenek, miközben az alkalmazás fut. A teljes listát lásd: Project mode (.NET SDK projects).
Használd inkább a dotnet run parancsot.
Ha inkább a(z) dotnet run megoldást részesíti előnyben, használja a Microsoft.Windows.SDK.BuildTools.WinApp NuGet-csomagot. A csomag úgy csatlakozik be a folyamatba, hogy meghívja a(z) winapp run elemet, és identitással indítja el az alkalmazást a(z) dotnet run használatával. Az Ön által winapp new létrehozott projektek már hivatkoznak a csomagra, ezért dotnet run további beállítás nélkül működik. Más projektek esetében először adja hozzá a csomagot:
dotnet add package Microsoft.Windows.SDK.BuildTools.WinApp --prerelease
dotnet run
Az opciókat dotnet run -p:WinAppRunDebugOutput=trueWinAppRun* MSBuild-tulajdonságként is átadhatja, például winapp run. Az integráció kikapcsolásához állítsa a projektfájlban a(z) EnableWinAppRunSupport elemet false értékre. További információ: dotnet run support.
Összeomlások hibakeresése
Az alkalmazás futása közben adja hozzá a(z) OutputDebugString--debug-output üzeneteket és az első esélyként kezelt kivételeket rögzítéséhez. Ha egy WinUI-alkalmazás stowed exceptionnel meghiúsul, a Winapp CLI elemzi az összeomlási memóriaképet, és általános hibakód helyett kinyomtatja az eredeti hibát és hívási vermet.
winapp run --debug-output
Adja hozzá --symbols-t a teljes natív függvénynevek szimbólumainak letöltéséhez. Mivel --debug-output a winapp parancssori felületét hibakeresőként csatolja, nem csatolhatja a Visual Studiót vagy egy másik hibakeresőt ugyanahhoz a folyamathoz. Ha inkább az IDE-vel szeretne hibakeresést végezni, tekintse meg a Hibakeresés a winapp CLI-val. A stowed-exception elemzésével kapcsolatos részletekért lásd: WinUI stowed-exception triage.
Vezérlők és API-k keresése
winapp find-uiXAML- és C#-mintákat keres a WinUI-katalógusból és a Windows közösségi eszközkészletből szándék szerint, és az Ön által kiválasztott forgatókönyv kódját adja vissza.
winapp find-apiMegkeresi a projekt által hivatkozott Windows és WinRT API-felületet, például Windows App SDK- és Windows SDK-típusokat, tagokat és enumerációkat.
# Find a control by what you want to build
winapp find-ui "tabbed layout"
# Get the XAML and C# for one of the returned scenarios
winapp find-ui --id gallery-tabview-1
# Look up an API
winapp find-api NavigationView
Mindkét parancs támogatja --json, így az AI kódolási ügynökei vezérlők kiválasztására és API-nevek ellenőrzésére használhatják őket. További információkért tekintse meg a find-api és find-ui hivatkozásokat.
Automatizálja és ellenőrizze a felhasználói felületet
winapp ui egy futó alkalmazást vezérel a Microsoft UI-automatizálás segítségével. Segítségével megvizsgálhatja az elemfát, vezérlőket hívhat meg, várhatja az állapotváltozásokat, és képernyőképeket készíthet. Az ügynökök ugyanezekkel a parancsokkal ellenőrizhetik saját módosításaikat.
winapp run --detach
winapp ui inspect -a MyApp
winapp ui search Button -a MyApp
winapp ui invoke PART_PaneToggleButton -a MyApp
winapp ui screenshot -a MyApp
A PART_PaneToggleButton választó a winui-navview sablon menügombját célozza meg. A saját vezérlőihez másolja ki a szelektort a winapp ui inspect vagy a winapp ui search kimenetéből.
Ha az alkalmazást nem az asztalon, hanem Windows Sandboxban szeretné futtatni, adja hozzá a(z) --on sandbox elemet a winapp run és winapp ui elemhez. További információ: UI-automatizálás és homokozó-végrehajtás.
Csomagolás és aláírás
Ha készen áll egy csomag helyi tesztelésére, hozzon létre egy fejlesztési tanúsítványt, amelynek kiadója megfelel a jegyzékfájljának, majd egy lépésben hozza létre és csomagolja be a projektet:
winapp cert generate --manifest .\Package.appxmanifest
winapp pack .\MyApp.csproj -c Release --arch x64 --cert .\devcert.pfx
winapp pack lefordítja a projektet, és létrehoz egy aláírt .msix. Ha több architektúrához készült buildeket szeretne egybe .msixbundleegyesíteni, tekintse meg a többarchitektúra-csomagokat. A projektet csomagolni kell, így az a projekt, amelyben a(z) WindowsPackageType értéke None, nem csomagolható. WinUI-projektek esetén a Windows App SDK build kezeli a manifestet, a belépési pontot és az erőforrások létrehozását, ezért a --manifest, a --executable és a --skip-pri nem elfogadott.
A fejlesztési tanúsítvány csak helyi teszteléshez használható, és alapértelmezett jelszót használ. Az alkalmazás terjesztése előtt írja alá egy megbízható tanúsítvánnyal, például a winapp az-sign és az Megbízható Azure-aláírás használatával. További információ: Projekt közvetlen csomagolása és Biztonság.
Meglévő WinUI-projektek
A Winapp CLI az Ön által a Visual Studióban létrehozott WinUI-projektekkel működik. Mutasson winapp run a projektfájlra, a megoldásfájlra vagy arra a mappára, amely ezek egyikét tartalmazza. A(z) winapp pack esetén adja át a(z) .csproj-t. Továbbra is folytathatja a fejlesztést és hibakeresést végezhet a Visual Studióban, és használhatja a Winapp CLI-t szkriptekhez, CI-hez és ügynök-munkafolyamatokhoz.
WinUI a C++ használatával
winapp runEmellett létrehozza és elindítja azokat a C++/WinRT WinUI-projekteket is (), amelyeket a Visual Studio .vcxproj sablonnal hozott létre. Létrehozza a projektet Visual Studio MSBuildjével, regisztrálja az alkalmazást a csomag identitásával, és elindítja azt:
winapp run .\MyApp.vcxproj
# Or from the folder that contains the project
winapp run .
A C++ projektekhez Visual Studio vagy Build Tools for Visual Studio szükséges a(z) Asztali fejlesztés C++ használatával számítási feladattal és a(z) C++ WinUI alkalmazásfejlesztő eszközökkel.
winapp pack nem fordítja le a .vcxproj projekteket, ezért hozza létre az MSIX-csomagot a Visual Studióban. Az előfeltételekről és lehetőségekről a C++ projektek (.vcxproj) című témakörben olvashat. A WinUI-t nem használó C++ alkalmazások esetén lásd: A winapp CLI használata C++-szal.
Samples
-
winui-app: egy csomagolt WinUI-alkalmazás, amelywinapp ui-automatizálásra beállított vezérlőkkel rendelkezik -
winui-unpackaged-app: egy WinUI-alkalmazás, amely csomagidentitás nélkül fut -
winui-solution: többprojektes megoldás, amely bemutatja, hogyan történik az alkalmazásprojekt kiválasztása a(z)winapp runáltal -
cpp-winui-app: egy csomagolt C++/WinRT WinUI-alkalmazás (Visual Studio.vcxproj-ban, XAML-lel), amely a következővel fut:winapp run
További lépések
Windows developer