Windows App Development CLI (winapp CLI)

Viktigt!

CLI för Windows App Development finns för närvarande i public preview. Funktioner och kommandon kan ändras innan den slutliga versionen. Dela din feedback genom att skapa ett problem.

WINDOWS APP Development CLI (winapp CLI) är ett kommandoradsverktyg för att skapa Windows appar med det ramverk du väljer. Det fungerar från en terminal, den redigerare du föredrar eller en AI-kodningsagent.

  • WinUI-appar: skapa, köra, felsöka, testa och paketera WinUI-appar utan att öppna Visual Studio.
  • Plattformsoberoende och andra ramverk: ta med Windows funktioner till din befintliga Electron-, Flutter-, Tauri-, Rust-, .NET- eller C++-app utan att ändra ramverk. winapp CLI konfigurerar Windows App SDK och Windows SDK, ger din app en paketidentitet så att du kan anropa API:er som meddelanden och AI på enheten, och paketerar den som MSIX för Microsoft Store eller din egen distribution.

Viktiga fördelar med winapp CLI

En Kommandotolken-ikon på en upphöjd panel över en blå pixelvåg

Skapa och kör WinUI-appar från terminalen
winapp new skapar en WinUI-app från de officiella mallarna, inklusive blank, NavigationView, TabView och MVVM-starter. winapp runbygger projektet, installerar matchande Windows App Runtime och startar appen, oavsett om den är paketerad eller uppackad.
Skapa din första WinUI-app

En buggikon på en upphöjd panel över ett diagonalt band med blå bildpunkter

Felsöka med paketidentitet och kraschdiagnostik
Kör din app med paketidentitet så att du kan testa meddelanden, AI på enheten och andra API:er som kräver identitet. Lägg till --debug-output för att samla in felsökningsmeddelanden och kraschdumpar. Vid WinUI-krascher avkodar winapp lagrade undantag så att du kan se vilken XAML-händelsehanterare som misslyckades.
Felsöka med paketidentitet

En chattbubbla med gnistrande ikon på en upphöjd panel över en blå pixelvåg

Förankra AI-kodningsagenter i verklig WinUI-kod
winapp find-uireturnerar fungerande XAML och C# från WinUI 3-galleriet och Windows Community Toolkit. winapp find-api inspekterar de Windows Runtime API:er som projektet refererar till. Agenter använder dem för att generera kod från verkliga exempel och metadata i stället för att gissa.
Använd winapp CLI med AI-agenter

En pekare och beröringsikon på en upphöjd panel över ett diagonalt band med blå bildpunkter

Automatisera och testa appens användargränssnitt
winapp uiinspekterar och interagerar med appar som körs via UI Automation och tar skärmdumpar och inspelningar. Kör appen i Windows Sandbox för att testa den i en ren miljö.
Automatisering av användargränssnitt

En paketikon på en upphöjd panel över en blå pixelvåg

Paketera, underteckna och skicka
winapp pack bygger projektet, paketerar det som MSIX och signerar det i ett steg. Generera utvecklingscertifikat lokalt, signera releasebyggen med Betrodd Azure-signering och installera winapp CLI på GitHub Actions eller Azure DevOps runners.
Paketera din app

En pusselbitsikon på en upphöjd panel över ett diagonalt band med blå pixlar

Gör Windows-funktioner tillgängliga i alla ramverk
Lägg till Windows SDK och Windows App SDK, paketidentitet och MSIX-paketering i appar som skapats med .NET, C++, Electron, Flutter, Rust eller Tauri, utan att ändra byggsystemet.
Se ramverk som stöds

Kom igång med WinUI

När du har installerat winapp CLI och .NET SDK skapar och kör du en WinUI-app:

winapp new --name MyWinUIApp --template winui-navview --use-defaults
cd MyWinUIApp
winapp run

När du är redo att testa ett paket lokalt genererar du ett utvecklingscertifikat och skapar ett signerat MSIX-paket:

winapp cert generate --manifest ./Package.appxmanifest
winapp pack ./MyWinUIApp.csproj -c Release --cert ./devcert.pfx

Utvecklingscertifikatet använder ett standardlösenord och är endast avsett för lokal testning. Innan du distribuerar din app signerar du den med ett betrott certifikat, till exempel med winapp az-sign. Mer information finns i Security.

En stegvis genomgång som innehåller konfiguration och din första ändring av användargränssnittet finns i Bygg din första WinUI-app. Om du vill se alla tillgängliga mallar kör du winapp new --list. För det fullständiga arbetsflödet, inklusive felsökning, automatisering av användargränssnitt och paketering, se Använda winapp CLI med WinUI.

Installation

WinGet

Det enklaste sättet att installera CLI är via WinGet (Windows Správca balíkov):

winget install Microsoft.winappcli --source winget

Om du använder WinGet PowerShell-modulen kör du Install-WinGetPackage Microsoft.winappcli i stället.

NPM

För Elektronprojekt installerar du via NPM:

npm install @microsoft/winappcli --save-dev

GitHub Actions/Azure DevOps

För CI/CD-pipelines använder du åtgärden setup-WinAppCli för att automatiskt installera CLI på dina agenter.

Manuell nedladdning

Ladda ned den senaste versionen från GitHub Releases.

Verifiera installationen

När installationen är installerad kontrollerar du installationen genom att anropa CLI:

winapp --help

Eller om du använder Electron/Node.js:

npx winapp --help

Använd winapp CLI med AI-agenter

winapp CLI är utformat för att fungera bra med AI-kodningsagenter. Kommandon som find-ui och find-api returnerar maskinläsbara utdata med --json, så att en agent kan leta upp verkliga WinUI-exempel och Windows Runtime API:er innan den skriver kod.

Installera winapp-pluginet för att ge din agent färdigheter för winapp CLI-arbetsflödet:

# GitHub Copilot CLI
copilot plugin install microsoft/WinAppCli

# Claude Code
claude plugin marketplace add microsoft/WinAppCli
claude plugin install winappcli@winappcli

Om du arbetar i Visual Studio Code kör WinApp VS Code-tillägget winapp CLI-kommandon från redigeraren och startar din app med paketidentitet när du trycker på F5. Installera den från Visual Studio Marketplace.

Ramverk som stöds

winapp CLI fungerar med WinUI och andra appramverk:

Ramverk Guide
WinUI Kom igång med WinUI
.NET/WPF/WinForms Komma igång med .NET
.NET MAUI Kom igång med .NET MAUI
C++ (CMake) Kom igång med C++
Elektron Kom igång med Electron
Rust Kom igång med Rust
Tauri Kom igång med Tauri
Flutter Kom igång med Flutter

Ytterligare guider:

  • Paketera en EXE/CLI: stegvis guide för att paketera en befintlig EXE/CLI som MSIX
  • Gles paketering: ge en opaketerad app paketidentitet med en MSIX-fil med enbart identitet (gles) och externt innehåll
  • Shell Completion: Aktivera flikkomplettering för kommandon, alternativ och värden i PowerShell, bash, zsh och fish
  • Säkerhetsvägledning: vilka utvecklingscertifikat och utvecklarläge som ändras på datorn, hur du hanterar devcert.pfxoch hur du loggar in för produktion

Översikt över kommandon

Kategori Kommandon
Skapa och konfigurera new, init, restore, update
Kör och felsök run, create-debug-identity, embed-identity, unregister
Paketering pack
Manifesterar manifest generate, manifest update-assets, manifest add-alias
Certifikat och signering cert generate, cert install, sign, az-sign, create-external-catalog
Kodsökning efter agenter find-ui, find-api
UI-automatisering och Sandbox ui, target
Utilities tool, store, get-winapp-path, complete
Node.js/Electron node create-addon, node generate-bindings, node add-electron-debug-identity, node clear-electron-debug-identity

Den fullständiga CLI-referensen finns i CLI-referens.

Samples

Exempelmappen på GitHub har ett körbart projekt för varje ramverk som stöds:

Sample Description
WinUI app Paketerad WinUI-app registrerad och startad med winapp run
WinUI unpackaged app Opaketerad WinUI-app som startats med winapp run
WinUI solution Lösning för flera projekt (app och testprojekt) som visar hur winapp run väljer appprojektet
C++ WinUI app WinUI-fönster inbyggt i C++ med CMake, utan XAML eller MSBuild
WPF app WPF skrivbordsapp
.NET MAUI app .NET MAUI Windows projekt paketerat och signerat med winapp CLI
C++ app Nativ C++ Win32-app som skapats med CMake
Electron Electron Forge-app med manifest, tillgångar och inbyggda C++- och C#-tillägg
Rust app Rust-app som anropar Windows API:er
Tauri app Tauri-app med en Rust-backend
Flutter app Flutter-skrivbordsapp med paketidentitet och Windows App SDK
Sparse app WPF app med glespaketering (endast identitetsbaserad MSIX) och ett installationsprogram

Varför paketidentitet?

Många Windows API:er kräver att din app har paketidentitet. Med identitet får din app access till funktioner som meddelanden, OS-integrering och AI på enheten. WinUI-appmallar innehåller ett paketmanifest, så winapp run ger dem identitet som standard. En fullständig lista över vilken paketidentitet som låser upp och hjälper dig att välja rätt paketeringsmodell finns i Paketeringsöversikt.

Öppen källkod

winapp CLI är open-source. Du hittar källkoden, filproblemen och bidrar på GitHub. För hjälp, se Support.