Important
Windows アプリ開発 CLI は現在、公開プレビュー中です。 機能とコマンドは、最終リリースの前に変更される可能性があります。 問題を作成して、フィードバックを共有します。
Windows アプリ開発 CLI (winapp CLI) は、選択したフレームワークを使用してWindowsアプリをビルドするためのコマンド ライン ツールです。 ターミナル、好みのエディター、または AI コーディング エージェントで使えます。
- WinUI アプリ: Visual Studioを開かずに WinUI アプリを作成、実行、デバッグ、テスト、パッケージ化します。
- クロスプラットフォームとその他のフレームワーク: フレームワークを変更することなく、既存の Electron、Flutter、Tauri、Rust、.NET、または C++ アプリにWindows機能を提供します。 winapp CLI は、Windows アプリ SDK と Windows SDK を設定し、通知やデバイス上の AI などの API を呼び出せるようにアプリにパッケージ ID を付与し、Microsoft Store または独自の配布向けに MSIX としてパッケージ化します。
winapp CLI の主な利点
ターミナルから WinUI アプリを作成して実行する
winapp new は、空白、NavigationView、TabView、MVVM スターターなど、公式テンプレートから WinUI アプリを作成します。
winapp runはプロジェクトをビルドし、一致するWindows アプリランタイムをインストールし、パッケージ化されているかパッケージ化されていないかにかかわらず、アプリを起動します。
初めての WinUI アプリをビルドする
パッケージ ID とクラッシュ診断を使用したデバッグ
通知、デバイス上の AI、ID を必要とするその他の API をテストできるように、パッケージ ID 情報を使用してアプリを実行します。 デバッグ メッセージとクラッシュ ダンプをキャプチャする --debug-output を追加します。 WinUI クラッシュの場合、winapp は stowed 例外をデコードして、失敗した XAML イベント ハンドラーを特定します。
パッケージ ID を使用したデバッグ
AI コーディング エージェントを実際の WinUI コードに基づかせる
winapp find-uiでは、WinUI 3 ギャラリーと Windows Community Toolkit から動作する XAML と C# を取得できます。
winapp find-apiは、プロジェクトが参照する Windows ランタイム API を検査します。 エージェントはそれらを使用して、推測するのではなく、実際のサンプルとメタデータからコードを生成します。
AI エージェントで winapp CLI を使用する
アプリの UI を自動化してテストする
winapp uiは、UI オートメーションを介して実行中のアプリを検査および対話し、スクリーンショットと記録をキャプチャします。 Windowsサンドボックスでアプリを実行し、クリーンな環境でテストします。
UI オートメーション
パッケージ、署名する、発送
winapp pack プロジェクトをビルドし、MSIX としてパッケージ化し、1 つの手順で署名します。 開発証明書をローカルで生成し、Azure の信頼された署名を使用してリリース ビルドに署名し、winapp CLI を GitHub Actions または Azure DevOps ランナーにインストールします。
アプリをパッケージ化する
Windows機能を任意のフレームワークに取り込む
ビルド システムを変更せずに、Windows SDK とWindows アプリ SDK、パッケージ ID、MSIX パッケージを、.NET、C++、Electron、Flutter、Rust、または Tauri を使用してビルドされたアプリに追加します。
サポートされているフレームワークを確認する
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 pipelinesの場合は、setup-WinAppCli アクションを使用して、ランナー/エージェントに CLI を自動的にインストールします。
手動ダウンロード
GitHub リリースから最新のビルドをダウンロードします。
インストールを検証する
インストールが完了したら、CLI を呼び出してインストールを確認します。
winapp --help
または、Electron/Node.jsを使用している場合:
npx winapp --help
AI エージェントとともに winapp CLI を使用する
winapp CLI は、AI コーディング エージェントとうまく連携できるように設計されています。
find-uiやfind-apiなどのコマンドは、--jsonを使用してマシンが読み取り可能な出力を返すので、エージェントはコードを記述する前に実際の WinUI サンプルとWindows ランタイム API を検索できます。
winapp CLI ワークフロー用のエージェント スキルを付与するには、winapp プラグインをインストールしてください。
# 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 キーを押すとパッケージ ID でアプリを起動します。 Visual Studio Marketplace からインストールします。
サポートされているフレームワーク
winapp CLI は、WinUI やその他のアプリ フレームワークで動作します。
| フレームワーク | ガイド |
|---|---|
| WinUI | WinUI の使い始め |
| .NET/ WPF / WinForms | |
| .NET MAUI | .NET MAUI の概要 |
| C++ (CMake) | C++ を使い始める |
| Electron | Electronを使って始めよう |
| Rust | Rustを始める方法 |
| Tauri | Tauri の使い方を始める |
| Flutter | Flutter を使い始める |
その他のガイド:
- EXE/CLI のパッケージ化: 既存の EXE/CLI を MSIX としてパッケージ化するためのステップ バイ ステップ ガイド
- Sparse パッケージ: パッケージ化されていないアプリ パッケージに、ID のみ (sparse) の MSIX と外部コンテンツを使用して識別情報を付与する
- シェルの完了: PowerShell、bash、zsh、fish のコマンド、オプション、および値のタブ補完を有効にする
-
セキュリティ ガイダンス: コンピューター上で変更される開発証明書と開発者モード、
devcert.pfxの処理方法、運用環境に署名する方法
コマンドの概要
| カテゴリ | コマンド |
|---|---|
| 作成と設定 | new, init, restore, update |
| 実行とデバッグ | run, create-debug-identity, embed-identity, unregister |
| 包装 | pack |
| マニフェスト | manifest generate, manifest update-assets, manifest add-alias |
| 証明書と署名 | 証明書の生成、 証明書のインストール、 署名、 az-sign、 create-external-catalog |
| エージェントのコード検索 | find-ui、 find-api |
| UI オートメーションとサンドボックス | ui、 対象 |
| 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 |
完全な CLI リファレンスについては、 CLI リファレンスを参照してください。
Samples
GitHubの samples フォルダーには、サポートされているフレームワークごとに実行可能なプロジェクトがあります。
| Sample | Description |
|---|---|
| WinUI アプリ | パッケージ化された WinUI アプリが登録され、winapp run で起動されました |
| WinUI のパッケージ化されていないアプリ |
winapp run を使用して起動されたパッケージ化されていない WinUI アプリ |
| WinUI ソリューション |
winapp run がアプリ プロジェクトを選択する方法を示すマルチプロジェクト ソリューション (アプリとテスト プロジェクト) |
| C++ WinUI アプリ | C++ と CMake で構築する WinUI ウィンドウ (XAML または MSBuild なし) |
| WPF アプリ | WPF デスクトップ アプリ |
| .NET MAUI アプリ | winapp CLI でパッケージ化および署名された .NET MAUI Windows プロジェクト |
| C++ アプリ | CMake で構築されたネイティブ C++ Win32 アプリ |
| 電子 | マニフェスト、アセット、ネイティブ C++ および C# アドオンを含む Electron Forge アプリ |
| Rust アプリ | Windows API を呼び出す Rust アプリ |
| Tauri アプリ | Rust バックエンドを使用した Tauri アプリ |
| Flutter アプリ | パッケージ ID とWindows アプリ SDKを備えた Flutter デスクトップ アプリ |
| 軽量アプリ | スパース パッケージ (ID 専用 MSIX) とインストーラーを使用した WPF アプリ |
パッケージ ID が必要な理由
多くのWindows API では、アプリにパッケージ ID が必要です。 ID を使用すると、アプリは通知、OS 統合、デバイス上の AI などの機能にaccessを得られます。 WinUI アプリ テンプレートにはパッケージ マニフェストが含まれているため、それらには winapp run によって既定で ID が付与されます。 どのパッケージ ID がロック解除され、適切なパッケージ モデルの選択に役立つかの完全な一覧については、「 パッケージ化の概要」を参照してください。
オープンソース
winapp CLI がオープンソース。 ソース コード、ファイルの問題を見つけ、GitHubで投稿できます。 ヘルプについては、「 サポート」を参照してください。
関連トピック
Windows developer