CLI для разработки приложений Windows (winapp CLI)

Это важно

Интерфейс командной строки для разработки приложений Windows сейчас находится в публичной предварительной версии. Функции и команды могут изменяться до окончательного выпуска. Поделитесь своим отзывом, создайте запрос.

приложение для Windows Development CLI (winapp CLI) — это средство командной строки для разработки приложений Windows с выбранным вами фреймворком. Он работает в терминале, предпочитаемом вами редакторе или агенте программирования ИИ.

  • Приложения WinUI: создавать, запускать, отлаживать, тестировать и упаковывать приложения WinUI без открытия Visual Studio.
  • Кроссплатформенные и другие фреймворки: добавьте функции Windows в существующее приложение Electron, Flutter, Tauri, Rust, .NET или C++ без изменения фреймворков. Интерфейс командной строки winapp настраивает Windows App SDK и Windows SDK, предоставляет удостоверение пакета приложения, чтобы можно было вызывать ТАКИЕ API, как уведомления и ИИ на устройстве, и упаковывает его в формат MSIX для Microsoft Store или собственного дистрибутива.

Основные преимущества winapp CLI

Значок командной строки на поднятой плитке по синей волне пикселей

Создание и запуск приложений WinUI из терминала
winapp new создает приложение WinUI из официальных шаблонов, включая пустые, NavigationView, tabView и MVVM-стартеры. winapp run собирает проект, устанавливает соответствующий приложение для Windows Runtime и запускает приложение, независимо от того, упаковано оно или нет.
Создание первого приложения WinUI

Значок жука на рельефной плитке над диагональной полосой синих пикселей

Отладка с помощью идентификатора пакета и диагностики сбоев
Запустите приложение с идентичностью пакета, чтобы можно было протестировать уведомления, ИИ на устройстве и другие API, требующие идентичности. Добавьте --debug-output для записи сообщений отладки и аварийных дампов. При сбоях WinUI winapp декодирует отложенные исключения, которые указывают на обработчик событий XAML, завершившийся сбоем.
Отладка с идентификацией пакета

Пузырь чата со значком с искрами на поднятой плитке по синей волне пикселей

Основывайте AI-агентов для программирования на реальном коде WinUI
winapp find-uiвозвращает рабочие XAML и C# из галереи WinUI 3 и Windows Community Toolkit. winapp find-api проверяет API среда выполнения Windows, на которые ссылается проект. Агенты используют их для создания кода из реальных примеров и метаданных вместо угадывания.
Использование интерфейса командной строки winapp с агентами ИИ

Указатель и значок касания на поднятой плитке на диагональной полосе из синих пикселей

Автоматизируйте и тестируйте пользовательский интерфейс вашего приложения
winapp uiпроверяет и взаимодействует с запущенными приложениями с помощью модель автоматизации пользовательского интерфейса и захватывает снимки экрана и записи. Запустите приложение в Windows Sandbox, чтобы протестировать его в чистой среде.
Автоматизация пользовательского интерфейса

Значок посылки на поднятой плитке на синей волне пикселей

Упакуйте, подпишите и отправьте
winapp pack создает проект, упаковывает его как MSIX и подписывает его на одном шаге. Создайте сертификаты разработки локально, подписывая сборки выпуска с помощью Azure Trusted Signing, и установите winapp CLI на GitHub Actions или Azure DevOps runners.
Упакуйте приложение

Значок фрагмента головоломки на поднятой плитке по диагонали полосы синих пикселей

Добавьте функции Windows в любой фреймворк
Добавьте пакет SDK Windows и Windows App SDK, идентичность пакета и упаковку MSIX в приложения, созданные с помощью .NET, C++, Electron, Flutter, Rust или Tauri, без изменения системы сборки.
См. поддерживаемые фреймворки

Начало работы с WinUI

После установки winapp CLI и пакета SDK .NET создайте и запустите приложение 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. Дополнительные сведения см. в разделе Безопасность.

Пошаговое руководство по настройке и первому изменению пользовательского интерфейса см. в статье Создание первого приложения WinUI. Чтобы просмотреть все доступные шаблоны, выполните команду winapp new --list. Сведения о полном рабочем процессе, включая отладку, автоматизацию пользовательского интерфейса и упаковку, см. в статье Использование интерфейса командной строки winapp с WinUI.

Installation

WinGet

Самый простой способ установки интерфейса командной строки — через 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

Для pipelines CI/CD используйте действие setup-WinAppCli для автоматической установки интерфейса командной строки на средства выполнения или агенты.

Скачивание вручную

Скачайте последнюю сборку из GitHub релизов.

Проверка установки

После установки проверьте установку, вызвав интерфейс командной строки:

winapp --help

Или при использовании Electron/Node.js:

npx winapp --help

Используйте CLI winapp с агентами ИИ

winapp CLI разработан для эффективной работы с ИИ-агентами для программирования. Такие команды, как find-ui и find-api, возвращают машиночитаемые выходные данные с помощью --json, поэтому агент может искать реальные примеры WinUI и API среда выполнения Windows перед написанием кода.

Установите подключаемый модуль 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 запускает команды CLI winapp из редактора и запускает приложение с идентификатором пакета при нажатии клавиши F5. Установите его из Visual Studio Marketplace.

Поддерживаемые платформы

winapp CLI работает с WinUI и другими платформами приложений:

Платформа 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, содержащего только идентичность (разреженного пакета), и внешнего содержимого
  • Завершение оболочки: включение завершения вкладки для команд, параметров и значений в PowerShell, bash, zsh и fish
  • Руководство по безопасности: как сертификаты разработки и режим разработчика влияют на ваш компьютер, как работать с devcert.pfx, и как выполнять подписывание для промышленной среды

Общие сведения о командах

Категория Commands
Создание и настройка создать, инициализировать, восстановить, обновить
Запустить и отладить run, create-debug-identity, embed-identity, unregister
Упаковка упаковывать
Манифесты создание манифеста, обновление ресурсов манифеста, добавление псевдонима в манифесте
Сертификаты и подписывание cert generate, cert install, sign, az-sign, create-external-catalog
Поиск агентов по коду find-ui, find-api
Автоматизация пользовательского интерфейса и Sandbox UI, цель
утилиты 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 reference.

Samples

Папка примеров в GitHub содержит запускаемый проект для каждого поддерживаемого фреймворка:

Sample Description
Приложение WinUI Упаковаемое приложение WinUI зарегистрировано и запущено с помощью winapp run
Неупакованное приложение WinUI Неупакованное приложение WinUI, запущенное с помощью winapp run
Решение WinUI Решение с несколькими проектами (приложение и тестовый проект), показывющее, как winapp run выбирает проект приложения
Приложение WinUI C++ Окно WinUI, созданное на C++ с помощью CMake, без XAML или MSBuild
приложение WPF настольное приложение WPF
приложение .NET MAUI .NET MAUI Windows проект, упакованный и подписанный с помощью winapp CLI
Приложение C++ Нативное приложение C++ Win32, созданное с помощью CMake
Электрон Приложение Electron Forge с манифестом, ресурсами и нативными аддонами C++ и C#
Приложение Rust Приложение Rust, вызывающее API-интерфейсы Windows
Приложение Tauri Приложение Tauri с бэкендом на Rust
Приложение Flutter Настольное приложение Flutter с идентичностью пакета и Windows App SDK
Разреженное приложение WPF приложение с разреженной упаковкой (MSIX только с идентификацией пакета) и установщиком

Почему идентификация пакета?

Для многих API Windows требуется, чтобы у вашего приложения был идентификатор пакета. Благодаря идентификации приложение получает access к функциям, таким как уведомления, интеграция ОС и ИИ на устройстве. Шаблоны приложений WinUI включают манифест пакета, поэтому winapp run по умолчанию задает им идентичность. Полный список возможностей удостоверения пакета и помощь в выборе правильной модели упаковки вы можете найти в Обзоре упаковочных решений.

Открытый исходный код

Интерфейс командной строки Winapp с открытым исходным кодом. Вы можете найти исходный код, сообщить о проблемах и внести свой вклад на GitHub. Дополнительные сведения см. в разделе Поддержка.