這很重要
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 找到原始碼、檔案問題並貢獻。 如需協助,請參閱支援。