Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
CLI разработки Windows App в настоящее время находится в общественном предварительном тестировании. Функции и команды могут изменяться до окончательного выпуска.
На этой странице описаны все доступные команды для интерфейса командной строки Winapp.
Глобальные опции
Все команды поддерживают следующие глобальные параметры:
| Опция | Описание |
|---|---|
--verbose, -v |
Включите детализированный вывод для подробного журналирования |
--quiet, -q |
Подавление сообщений о ходе выполнения |
--help, -h |
Показать справку по команде |
Глобальный каталог кэша
WinApp создает каталог для кэширования файлов, которые можно совместно использовать для нескольких проектов. По умолчанию это $UserProfile/.winapp.
Чтобы использовать другое расположение, задайте WINAPP_CLI_CACHE_DIRECTORY переменную среды:
$env:WINAPP_CLI_CACHE_DIRECTORY = "d:\temp\.winapp"
Команды установки
инициализация
Инициализируйте каталог с Windows SDK, Windows App SDK и необходимыми ресурсами для современной разработки Windows.
winapp init [base-directory] [options]
Аргументы:
| Аргумент | Описание |
|---|---|
base-directory |
Базовый или корневой каталог для приложения или рабочей области (по умолчанию: текущий каталог) |
Варианты.
| Опция | Описание |
|---|---|
--config-dir <path> |
Каталог для чтения и хранения конфигурации (по умолчанию: текущий каталог) |
--setup-sdks |
Режим установки пакета SDK: stable (по умолчанию), preview, experimentalили none |
--ignore-config, --no-config |
Не используйте файл конфигурации для управления версиями |
--no-gitignore |
Не обновляйте файл .gitignore |
--use-defaults, --no-prompt |
Не запрашивайте и используйте значения по умолчанию для всех запросов. |
--config-only |
Обработка только операций файлов конфигурации, пропуск установки пакета |
Что он делает:
- Создает
winapp.yamlфайл конфигурации - Скачивает пакет Windows SDK и пакеты Windows App SDK
- Создает заголовки и двоичные файлы C++/WinRT
- Создает AppxManifest.xml
- Настройка средств сборки и включение режима разработчика
- Обновляет .gitignore, чтобы исключить созданные файлы
Автоматическое обнаружение проекта .NET:
Если файл .csproj найден в целевом каталоге, init использует упрощенный поток .NET:
- Проверяет и обновляет
TargetFrameworkдо совместимого с Windows TFM (например,net10.0-windows10.0.26100.0) - Добавляет
Microsoft.WindowsAppSDKиMicrosoft.Windows.SDK.BuildToolsкак записи NuGetPackageReferenceнепосредственно в.csproj - Создает
appxmanifest.xml, ресурсы и сертификат разработки -
Не создает
winapp.yamlили загружает проекции на C++ (используйтеdotnet restoreдля пакетов NuGet)
Примеры:
# Initialize current directory
winapp init
# Initialize with experimental packages
winapp init --setup-sdks experimental
# Initialize specific directory without prompts
winapp init ./my-project --use-defaults
# Initialize a .NET project (auto-detected from .csproj)
cd my-dotnet-app
winapp init
Подсказка
Если вы запустили init с помощью --setup-sdks none, и вам позже понадобятся SDK, повторно запустите winapp init --use-defaults --setup-sdks stable. Это сохраняет существующие файлы (манифест и т. д.).
Восстановление
Восстановите пакеты и повторно создайте файлы на основе существующей winapp.yaml конфигурации.
winapp restore [options]
Варианты.
| Опция | Описание |
|---|---|
--config-dir <path> |
Каталог, содержащий winapp.yaml (по умолчанию: текущий каталог) |
Что он делает:
- Считывает существующую
winapp.yamlконфигурацию - Скачивание и обновление пакетов SDK для указанных версий
- Повторно создает заголовки и двоичные файлы C++/WinRT
Замечание
Для проектов .NET, инициализированных с помощью winapp init, нет winapp.yaml. Вместо этого используется dotnet restore для восстановления пакетов NuGet.
Примеры:
# Restore from winapp.yaml in current directory
winapp restore
update
Обновите пакеты до последних версий и обновите файл конфигурации.
winapp update [options]
Варианты.
| Опция | Описание |
|---|---|
--config-dir <path> |
Каталог, содержащий winapp.yaml (по умолчанию: текущий каталог) |
--setup-sdks |
Режим установки пакета SDK: stable (по умолчанию), preview, experimentalили none |
Что он делает:
- Считывает существующую
winapp.yamlконфигурацию - Обновляет все пакеты до последних доступных версий
-
winapp.yamlОбновляет файл с новыми номерами версий - Повторно создает заголовки и двоичные файлы C++/WinRT
Примеры:
# Update packages to latest versions
winapp update
# Update including experimental packages
winapp update --setup-sdks experimental
Команды упаковки
pack
Создайте пакеты MSIX из подготовленных каталогов приложений. Требуется, чтобы файл appxmanifest.xml присутствовал в целевом каталоге, в текущем каталоге или передан с параметром --manifest .
winapp pack <input-folder> [options]
Аргументы:
| Аргумент | Описание |
|---|---|
input-folder |
Каталог, содержащий файлы приложения для упаковывания |
Варианты.
| Опция | Описание |
|---|---|
--output <filename> |
Выходное имя файла MSIX (по умолчанию: <name>.msix) |
--name <name> |
Имя пакета (по умолчанию: из манифеста) |
--manifest <path> |
Путь к AppxManifest.xml (по умолчанию: автоматическое обнаружение) |
--cert <path> |
Путь к сертификату подписывания (включает автоматическую подпись) |
--cert-password <password> |
Пароль сертификата (по умолчанию: "пароль") |
--generate-cert |
Создание нового сертификата разработки |
--install-cert |
Установка сертификата на компьютер |
--publisher <name> |
Имя издателя для создания сертификатов |
--self-contained |
Среда выполнения пакета Windows App SDK |
--skip-pri |
Пропуск создания файлов PRI |
--executable <path> |
Путь к исполняемому файлу относительно входной папки. Используется для разрешения $targetnametoken$ плейсхолдеров в манифесте. |
Что он делает:
- Проверяет и обрабатывает файлы AppxManifest.xml
-
$placeholder$Разрешает маркеры в манифесте (см. заполнители манифеста) - Обеспечивает корректность зависимостей фреймворка
- Обновляет параллельные манифесты с регистрацией
- Обрабатывает автономное развертывание Windows App SDK
- Подписывает пакет, если предоставлен сертификат
Примеры:
# Package directory with auto-detected manifest
winapp pack ./dist
# Package with custom output name and certificate
winapp pack ./dist --output MyApp.msix --cert ./cert.pfx
# Package with generated and installed certificate and self-contained runtime
winapp pack ./dist --generate-cert --install-cert --self-contained
# Package with explicit executable
winapp pack ./dist --executable MyApp.exe
создать-отладочный-идентификатор
Создайте идентификацию приложения для отладки без полной упаковки MSIX с помощью внешнего расположения/разреженной упаковки.
winapp create-debug-identity [entrypoint] [options]
Аргументы:
| Аргумент | Описание |
|---|---|
entrypoint |
Путь к исполняемому файлу (.exe) или скрипту, которому требуется идентификация |
Варианты.
| Опция | Описание |
|---|---|
--manifest <path> |
Путь к AppxManifest.xml (по умолчанию: ./appxmanifest.xml) |
--no-install |
Не устанавливайте пакет после создания |
--keep-identity |
Сохраните идентичность манифеста в неизменном виде, без добавления .debug к имени пакета или идентификатору приложения. |
Что он делает:
- Изменяет параллельный манифест исполняемого файла
- Регистрирует разреженный пакет для идентичности
- Активирует отладку API, требующих аутентификации
Примеры:
# Add identity to executable using local manifest
winapp create-debug-identity ./bin/MyApp.exe
# Add identity with custom manifest location
winapp create-debug-identity ./dist/app.exe --manifest ./custom-manifest.xml
Команды манифеста
Генерация манифеста
Создайте AppxManifest.xml из шаблонов.
winapp manifest generate [directory] [options]
Аргументы:
| Аргумент | Описание |
|---|---|
directory |
Каталог для создания манифеста (по умолчанию: текущий каталог) |
Варианты.
| Опция | Описание |
|---|---|
--package-name <name> |
Имя пакета (по умолчанию: имя папки) |
--publisher-name <name> |
Publisher CN (по умолчанию: CN=<current user>) |
--version <version> |
Версия (по умолчанию: "1.0.0.0") |
--description <text> |
Описание (по умолчанию: "Мое приложение") |
--entrypoint <path> |
Исполняемый файл или скрипт точки входа |
--template <type> |
Тип шаблона: packaged (по умолчанию) или sparse |
--logo-path <path> |
Путь к файлу изображения логотипа |
--if-exists <Error\|Overwrite\|Skip> |
Поведение, если файл уже существует (по умолчанию: ошибка) |
Шаблоны:
-
packaged— Стандартный манифест упаковаемого приложения -
sparse— Манифест приложения с использованием разреженного/внешнего расположения упаковки
Заполнители для манифеста
Созданные манифесты используют $placeholder$ токены (ограниченные знаками доллара), которые обрабатываются автоматически в процессе упаковки.
| Заполнитель | Решено | Пример |
|---|---|---|
$targetnametoken$ |
Имя исполняемого файла без расширения |
Executable="$targetnametoken$.exe" заменяется на Executable="MyApp.exe". |
$targetentrypoint$ |
Windows.FullTrustApplication |
Всегда решается автоматически |
Как обрабатываются заполнители:
-
winapp pack$targetnametoken$решает--executableс использованием параметра или автоматически обнаруживая один.exeво входной папке. -
winapp create-debug-identityразрешает$targetnametoken$из аргумента точки входа, если дан. -
winapp manifest generate --executableизвлекает метаданные из исполняемого файла, но оставляет$targetnametoken$.exeв манифесте для последующего разрешения.
Подсказка
Сохранение $targetnametoken$ в манифесте проверенного кода позволяет избежать жесткого написания исполняемых имен и работает с сборками winapp pack и Visual Studio.
Примеры:
# Generate standard manifest interactively
winapp manifest generate
# Generate with all options specified
winapp manifest generate ./src --package-name MyApp --publisher-name "CN=My Company" --if-exists overwrite
ресурсы обновления манифеста
Создайте все необходимые ресурсы образов MSIX из одного исходного образа.
winapp manifest update-assets <image-path> [options]
Аргументы:
| Аргумент | Описание |
|---|---|
image-path |
Путь к файлу исходного изображения (PNG, JPG, GIF и т. д.) |
Варианты.
| Опция | Описание |
|---|---|
--manifest <path> |
Путь к файлу AppxManifest.xml (по умолчанию: поиск текущего каталога) |
Принимает один исходный образ и автоматически создает все 12 необходимых ресурсов образов MSIX в правильных размерах. Ресурсы сохраняются в Assets каталоге относительно расположения манифеста.
Примеры:
# Generate assets with auto-detected manifest
winapp manifest update-assets mylogo.png
# Specify manifest location explicitly
winapp manifest update-assets mylogo.png --manifest ./dist/appxmanifest.xml
Команды сертификата и подписывания
Сгенерировать сертификат
Создайте сертификаты разработки для подписывания пакетов.
winapp cert generate [options]
Варианты.
| Опция | Описание |
|---|---|
--manifest <appxmanifest.xml> |
Извлечение сведений издателя из appxmanifest.xml |
--publisher <name> |
Имя издателя для сертификата |
--output <path> |
Путь к файлу выходного сертификата |
--password <password> |
Пароль сертификата (по умолчанию: "пароль") |
--valid-days <days> |
Число дней, в течение которых сертификат действителен (по умолчанию: 365) |
--install |
Установите сертификат в локальное хранилище машины после генерации |
--if-exists <Error\|Overwrite\|Skip> |
Поведение, если файл сертификата уже существует (по умолчанию: ошибка) |
Установка сертификата
Установите сертификат в хранилище сертификатов компьютера.
winapp cert install <cert-path>
Аргументы:
| Аргумент | Описание |
|---|---|
cert-path |
Путь к файлу сертификата для установки |
Примеры:
# Generate certificate for specific publisher
winapp cert generate --publisher "CN=My Company" --output ./mycert.pfx
# Install certificate to machine
winapp cert install ./mycert.pfx
знак
Подписывайте пакеты MSIX и исполняемые файлы с помощью сертификатов.
winapp sign <file-path> [options]
Аргументы:
| Аргумент | Описание |
|---|---|
file-path |
Путь к пакету MSIX или исполняемому файлу для подписывания |
Варианты.
| Опция | Описание |
|---|---|
--cert <path> |
Путь к сертификату подписи |
--cert-password <password> |
Пароль сертификата (по умолчанию: "пароль") |
Примеры:
# Sign MSIX package
winapp sign MyApp.msix --cert ./mycert.pfx
# Sign executable
winapp sign ./bin/MyApp.exe --cert ./mycert.pfx --cert-password mypassword
Команды служебной программы
Инструмент
Доступ к средствам Windows SDK напрямую. Использует средства, доступные в Microsoft.Windows.SDK.BuildTools.
winapp tool <tool-name> [tool-arguments]
Доступные средства:
-
makeappx— создание пакетов приложений и управление ими -
signtool— подписывает файлы и проверяет подписи -
mt— утилита манифеста для сборок, выполняемых бок о бок - Другие средства Windows SDK из Microsoft.Windows.SDK.BuildTools
Примеры:
# Use signtool to verify signature
winapp tool signtool verify /pa MyApp.msix
store
Выполните команду Developer CLI в Microsoft Store. Эта команда загружает интерфейс командной строки разработчика Microsoft Store, если он еще не скачан. Дополнительные сведения см. в интерфейсе командной строки разработчика Microsoft Store.
winapp store [args...]
Аргументы:
| Аргумент | Описание |
|---|---|
args... |
Аргументы, которые необходимо передать непосредственно в CLI msstore |
Примеры:
# List all apps in your Microsoft Partner Center account
winapp store app list
# Publish a package to the Microsoft Store
winapp store publish ./myapp.msix --appId <your-app-id>
get-winapp-path
Получите пути к установленным компонентам пакета SDK для Windows.
winapp get-winapp-path [options]
Возвращает пути к каталогу .winapp рабочей области, каталогам установки пакетов и созданным расположениям заголовков.
команды Node.js/Electron
Эти команды доступны только в пакете NPM.
node создать-дополнение
Создайте собственные шаблоны надстроек C++ или C# с помощью пакета SDK для Windows и интеграции Windows App SDK.
npx winapp node create-addon [options]
Варианты.
| Опция | Описание |
|---|---|
--name <name> |
Имя надстройки (по умолчанию: nativeWindowsAddon) |
--template |
Выберите тип надстройки: cs или cpp (по умолчанию: cpp) |
--verbose |
Включите подробный вывод |
Что он делает:
- Создает каталог надстройки с файлами шаблонов
- Создает файлы binding.gyp и addon с помощью примеров пакета SDK для Windows
- Установка необходимых зависимостей npm
- Добавляет скрипт сборки в package.json
Примеры:
# Generate addon with default name
npx winapp node create-addon
# Generate custom named C# addon
npx winapp node create-addon --name myWindowsAddon --template cs
node add-electron-debug-identity
Добавьте идентификацию приложения в разработку в Electron с помощью разреженного пакета. Необходим файл appxmanifest.xml (создайте его с помощью winapp init или winapp manifest generate).
Это важно
Известна проблема с разреженным упаковыванием приложений Electron, которая приводит к сбою приложения при запуске или некорректному отображению веб-содержимого. Проблема устранена в Windows, но еще не распространилась на все устройства. Вы можете, используя --no-sandbox флаг, отключить песочницу в приложении Electron в качестве обходного решения. Эта проблема не влияет на полную упаковку MSIX.
Чтобы удалить идентификацию для отладки Electron, используйте winapp node clear-electron-debug-identity.
npx winapp node add-electron-debug-identity [options]
Варианты.
| Опция | Описание |
|---|---|
--manifest <path> |
Путь к настраиваемому файлу appxmanifest.xml, по умолчанию: appxmanifest.xml в текущем каталоге. |
--no-install |
Не устанавливайте и не изменяйте зависимости; настраивайте только идентификатор отладки в Electron |
--keep-identity |
Сохраняйте удостоверение манифеста без изменения, без добавления .debug |
--verbose |
Включите подробный вывод |
Примеры:
# Add identity to Electron development process
npx winapp node add-electron-debug-identity
# Use a custom manifest file
npx winapp node add-electron-debug-identity --manifest ./custom/appxmanifest.xml
node clear-electron-debug-identity
Удалите идентификатор пакета из процесса отладки Electron, восстановив исходный файл electron.exe из резервной копии.
npx winapp node clear-electron-debug-identity [options]
Варианты.
| Опция | Описание |
|---|---|
--verbose |
Включите подробный вывод |
Примеры:
# Remove identity from Electron development process
npx winapp node clear-electron-debug-identity
Связанные темы
Windows developer