Windows 應用程式 Development CLI (winapp CLI)

這很重要

Windows 應用程式開發 CLI 目前處於 公開預覽。 功能與指令可能會在最終版本前有所變動。 請透過 creating a issue 分享你的回饋。

Windows 應用程式 開發 CLI(winapp CLI)是一個命令列工具,用於用你所選擇的框架來建置 Windows 應用程式。 它可以在終端機、你偏好的編輯器,或 AI 編碼代理中使用。

  • WinUI 應用程式:建立、執行、除錯、測試及打包 WinUI 應用程式,無需開啟 Visual Studio。
  • 跨平台及其他框架:將 Windows 功能帶入你現有的 Electron、Flutter、Tauri、Rust、.NET 或 C++ 應用程式,且不需更換框架。 winapp CLI 會設定 Windows 應用程式 SDK 和 Windows SDK,為你的應用程式提供套件身分,讓你可以呼叫通知和裝置端 AI 等 API,並以 MSIX 格式打包,發佈到 Microsoft Store 或由你自行散發。

winapp CLI 的主要優點

一個位於藍色像素波形上方凸起圖塊上的命令提示字元圖示

從終端機建立並執行 WinUI 應用程式
winapp new 使用官方範本(包括 blank、NavigationView、TabView 和 MVVM 起始範本)建立 WinUI 應用程式。 winapp run建置專案,安裝對應的 Windows 應用程式 執行環境,並啟動該應用程式,不論是打包還是未打包。
打造你的第一個 WinUI 應用程式

位於藍色像素斜帶上的凸起圖塊上的蟲子圖示

使用套件身分識別與當機診斷進行除錯
用套件身份來執行你的應用程式,這樣你可以測試通知、裝置上的 AI 以及其他需要身份的 API。 新增 --debug-output 以擷取除錯訊息和崩潰傾印。 對於 WinUI 當機,Winapp 會解碼暫存例外,指引你找到失敗的 XAML 事件處理器。
使用套件識別進行偵錯

一個帶有閃光圖示的聊天氣泡,置於凸起的圖塊上,藍色像素波形

讓 AI 編碼代理立足於真實的 WinUI 程式碼
winapp find-ui從 WinUI 3 圖庫與 Windows 社群工具包中提供可運作的 XAML 與 C#。 winapp find-api檢查你專案參考的 Windows 執行階段 API。 代理則用它們從真實樣本和元資料生成程式碼,而不是靠猜測。
使用 WinApp CLI 搭配 AI 代理

一個游標和觸控圖示,位於凸起的磚塊上,斜向藍色像素帶上方

自動化並測試你的應用程式使用者介面
winapp ui透過 使用者介面自動化 檢查並互動執行中的應用程式,並擷取截圖與錄影。 在 Windows 沙盒中執行你的應用程式,在乾淨的環境中測試它。
使用者介面自動化

一個套件圖示,置於凸起的磚塊上,位於藍色像素波形上方

打包、簽署並寄送
winapp pack 建立你的專案,打包成 MSIX,並在一個步驟中完成簽署。 在本地產生開發憑證,使用 Azure 信任簽署 簽署發行組建,並在 GitHub Actions 或 Azure DevOps 執行器上安裝 winapp CLI。
打包你的應用程式

一個拼圖圖示,置於凸起的磚塊上,位於斜向藍色像素帶上方

將 Windows 功能帶入任何框架
在不更改建置系統的情況下,為使用 .NET、C++、Electron、Flutter、Rust 或 Tauri 建置的應用程式新增 Windows SDK 和 Windows 應用程式 SDK、套件識別碼和 MSIX 封裝。
查看支援的框架

開始使用 WinUI

安裝 winapp CLI 和 .NET SDK 後,建立並執行一個 WinUI 應用程式:

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

當你準備好在本地測試套件時,產生開發憑證並建立已簽署的 MSIX 套件:

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

開發憑證使用預設密碼,僅用於本地測試。 在你發佈應用程式之前,請用可信憑證簽署,例如用 winapp az-sign。 如需詳細資訊,請參閱 安全性。

關於包含設定與首次 UI 變更的逐步教學,請參見 「建構你的第一個 WinUI 應用程式」。 要查看所有可用範本,請執行 winapp new --list。 關於完整工作流程,包括除錯、UI 自動化與打包,請參見「使用 WinUI 的 winapp CLI」。

安裝

WinGet

安裝 CLI 最簡單的方法是透過 WinGet(Windows 封裝管理員):

winget install Microsoft.winappcli --source winget

如果你用 WinGet PowerShell 模組,建議直接執行 Install-WinGetPackage Microsoft.winappcli 。

NPM

對於 Electron 專案,請透過 NPM 安裝:

npm install @microsoft/winappcli --save-dev

GitHub Actions / Azure DevOps

對於 CI/CD 管線,請使用 setup-WinAppCli 動作自動安裝 CLI 到執行者/代理程式上。

手冊下載

從 GitHub Releases 下載最新版本。

確認安裝

安裝後,請透過呼叫 CLI 來驗證安裝:

winapp --help

或者如果使用 Electron/Node.js:

npx winapp --help

使用 WinApp CLI 搭配 AI 代理

Winapp CLI 設計為與 AI 編碼代理程式搭配得很好。 像 find-api 和 find-ui 這類指令會以 --json 回傳機器可讀的輸出,讓代理程式在撰寫程式碼前能查閱真實的 WinUI 範例和 Windows 執行階段 API。

安裝 winapp 外掛,為你的代理新增技能,以用於 winapp CLI 工作流程:

# GitHub Copilot CLI
copilot plugin install microsoft/WinAppCli

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

如果你使用 Visual Studio Code,WinApp VS Code 擴充功能會從編輯器執行 WinApp CLI 指令,按下 F5 時會啟動帶有套件身分的應用程式。 從 Visual Studio 市集安裝它。

支援的架構

Winapp CLI 可搭配 WinUI 及其他應用程式框架運作:

Framework Guide
WinUI 開始使用 WinUI
.NET / WPF / WinForms 開始使用 .NET
.NET MAUI 開始使用 .NET MAUI
C++ (CMake) 開始使用 C++
電子 從頭開始學習 Electron
Rust 開始使用 Rust
陶瑞 開始使用Tauri
撲動 開始使用Flutter

額外指南:

  • 打包 EXE/CLI:將現有 EXE/CLI 打包為 MSIX 的逐步指南
  • 稀疏包裝:透過僅含身分識別的(稀疏)MSIX 和外部內容,讓未封裝的應用程式具有套件身分識別
  • Shell 補全:在 PowerShell、bash、zsh 和 fish 中啟用指令、選項和值的 Tab 補全功能
  • 安全性指引:開發憑證和開發人員模式會對你的電腦造成哪些變更、如何處理 devcert.pfx,以及如何為正式環境簽署

命令概觀

類別 Commands
建立與設定 新建、 初始化、 還原、 更新
執行與除錯 run、create-debug-identity、embed-identity、unregister
封裝 包
清單 manifest generate,manifest update-assets,manifest add-alias
證書與簽署 cert generate, cert install, sign, az-sign, create-external-catalog
代理程式的程式碼搜尋 find-ui、 find-api
使用者介面自動化與沙盒 ui, 目標
公用程式 tool、 store、 get-winapp-path、 完成
Node.js/電子 node create-addon、 node generate-bindings、 node add-electron-debug-identity、 node clear-electron-debug-identity

完整 CLI 參考,請參見 CLI 參考。

Samples

GitHub 上的 samples 資料夾裡有每個支援框架的可執行專案:

Sample Description
WinUI 應用程式 已使用 winapp run 註冊並啟動的已封裝 WinUI 應用程式
WinUI 未封裝應用程式 未封裝的 WinUI 應用程式使用 winapp run 啟動
WinUI 方案集 多專案解決方案(應用程式與測試專案),顯示如何選取 winapp run 應用程式專案
C++ WinUI 應用程式 WinUI 視窗以 C++ 搭配 CMake 建置,沒有 XAML 或 MSBuild
WPF 應用程式 WPF 桌面應用程式
.NET MAUI 應用程式 .NET MAUI Windows專案已以 WinApp CLI 包裝並簽署
C++ 應用程式 以 CMake 建置的原生 C++ Win32 應用程式
電子 Electron Forge 應用程式,包含清單、資產,以及原生的 C++ 和 C# 附加元件
Rust 應用程式 呼叫 Windows API 的 Rust 應用程式
Tauri 應用程式 Tauri 應用程式搭配 Rust 後端
Flutter 應用程式 Flutter 桌面應用程式,具備套件身份與 Windows 應用程式 SDK
稀疏應用程式 WPF 應用程式,採用稀疏封裝(僅識別身分的 MSIX)及安裝程式

為什麼要包裝身份?

許多 Windows API 要求你的應用程式必須有套件身份。 透過身份認證,你的應用程式將獲得通知、作業系統整合及裝置上 AI 等功能access。 WinUI 應用程式範本包含套件清單,因此 winapp run 預設會給它們一個身分識別。 要查看套件識別功能解鎖的完整清單以及選擇合適包裝模型的幫助,請參閱 包裝總覽。

開放原始碼

Winapp CLI 是 開放原始碼。 你可以在 GitHub 找到原始碼、檔案問題並貢獻。 如需協助,請參閱支援。