Windows アプリ 開発 CLI (winapp CLI)

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
.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で投稿できます。 ヘルプについては、「 サポート」を参照してください。