Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом руководстве описывается упаковка существующего исполняемого файла командной строки в виде пакета MSIX для распространения с помощью Windows диспетчер пакетов (winget), Microsoft Store или прямого распространения.
Необходимые условия
- Существующий исполняемый файл CLI (
.exe), который требуется упаковать - Windows 10 версии 1809 или более поздней
Шаги
1. Упорядочение приложения CLI
Поместите исполняемый файл CLI и все зависимости в выделенную папку. Эта папка будет содержать все файлы, которые должны быть включены в пакет MSIX.
mkdir MyCliPackage
cd MyCliPackage
# Copy your CLI executable and dependencies here
2. Установка winapp CLI
Установите winapp CLI с помощью Windows диспетчер пакетов или обновите до последней версии, если у вас уже есть:
# Install (or update if already installed)
winget install microsoft.winappcli --source winget
3. Создание Package.appxmanifest
Создайте базовый пакет.appxmanifest и необходимые ресурсы для исполняемого файла CLI:
winapp manifest generate --executable .\yourcli.exe
Эта команда создает Package.appxmanifest файл в текущем каталоге со значениями по умолчанию, заполненными исполняемым файлом.
4. Настройка манифеста
Измените созданный Package.appxmanifest код, чтобы настроить пакет. Каждый из подшагов ниже объясняет, что следует изменить и почему.
4.1. Добавление обязательного пространства имен
Добавьте пространство имен uap5 к элементу Package, если его еще нет. Это необходимо для псевдонима выполнения на шаге 4.3.
<Package
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
...
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:uap5="http://schemas.microsoft.com/appx/manifest/uap/windows10/5"
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
IgnorableNamespaces="uap uap5 rescap">
4.2 Настройка элемента Application
В элементе <uap:VisualElements> добавьте AppListEntry="none" , чтобы скрыть приложение из меню "Пуск". Средства командной строки вызываются из терминала, поэтому им не требуется отображение в меню "Пуск".
<uap:VisualElements
DisplayName="YourApp"
Description="My Application"
BackgroundColor="transparent"
Square150x150Logo="Assets\Square150x150Logo.png"
Square44x44Logo="Assets\Square44x44Logo.png"
AppListEntry="none">
</uap:VisualElements>
4.3. Добавление расширения для псевдонима выполнения
Добавьте псевдоним выполнения, чтобы пользователи могли запускать интерфейс командной строки по имени из любого окна терминала. Добавьте это в <Application> элемент (после <uap:VisualElements>):
<Extensions>
<uap5:Extension Category="windows.appExecutionAlias">
<uap5:AppExecutionAlias>
<uap5:ExecutionAlias Alias="yourcli.exe" />
</uap5:AppExecutionAlias>
</uap5:Extension>
</Extensions>
Замените yourcli.exe нужным именем команды для интерфейса командной строки. После установки MSIX пользователь сможет вызвать интерфейс командной строки с помощью этой команды.
4.4 Обновление метаданных приложения
Обновите следующие поля, чтобы соответствовать приложению CLI.
Это важно
Значение Publisher в манифесте должно соответствовать издателю в сертификате подписи. Если вы создаете сертификат позже (шаг 5), он будет использовать издателя из манифеста. При изменении издателя после создания сертификата необходимо повторно создать сертификат для сопоставления.
Identity: обновление
Name,PublisherиVersion<Identity Name="YourCompany.YourCLI" Publisher="CN=Your Company" Version="1.0.0.0" />Свойства: обновить отображаемое имя, отображаемое имя издателя и описание
<Properties> <DisplayName>Your CLI Tool</DisplayName> <PublisherDisplayName>Your Company</PublisherDisplayName> <Description>Description of your CLI tool</Description> <Logo>Assets\StoreLogo.png</Logo> </Properties>VisualElements: обновление отображаемого имени и ссылок на ресурсы
<uap:VisualElements DisplayName="Your CLI Tool" Description="Description of your CLI tool" BackgroundColor="transparent" Square150x150Logo="Assets\Square150x150Logo.png" Square44x44Logo="Assets\Square44x44Logo.png"> <uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png" /> <uap:SplashScreen Image="Assets\SplashScreen.png" /> </uap:VisualElements>
Примечание. Вы также должны добавить соответствующие иконки в папку Assets в каталоге вашего пакета. Хотя приложение не появится в меню "Пуск", значки по-прежнему требуются для отправки в Магазин и могут появляться в других контекстах.
5. (Необязательно) Создание сертификата разработки
Для локального тестирования и распространения за пределами Microsoft Store необходимо подписать пакет MSIX с помощью сертификата.
Создайте сертификат разработки. Держите его вне папки CLI, чтобы избежать случайного включения в пакет.
# Navigate to a location outside your CLI folder (e.g., your home directory)
cd ~
winapp cert generate
При этом создается файл в домашнем devcert.pfx каталоге (например, C:\Users\yourname\devcert.pfx).
Чтобы доверять этому сертификату на компьютере разработки, установите его (требуются права администратора):
# Run PowerShell as Administrator
winapp cert install ~\devcert.pfx
6. Упаковка интерфейса командной строки
Теперь вы готовы создать пакет MSIX:
# Navigate back outside of your project folder
# Package with dev certificate (for local testing/distribution)
winapp pack .\path\to\MyCliPackage --cert .\path\to\devcert.pfx
При этом создается .msix файл в текущем каталоге.
7. Установка и проверка
Установите пакет MSIX, чтобы убедиться, что все работает:
Add-AppxPackage .\MyCliPackage.msix
Если вы добавили псевдоним выполнения на шаге 4.3, теперь вы можете запустить интерфейс командной строки из любого терминала:
yourcli --help
Чтобы удалить позже, выполните приведенные ниже действия.
Get-AppxPackage *YourCLI* | Remove-AppxPackage
Tips
- Когда вы будете готовы к распространению, вы можете подписать MSIX с помощью сертификата подписи кода из центра сертификации, чтобы пользователи не должны устанавливать самозаверяющий сертификат.
- Microsoft Store подпишет MSIX за вас, так что нет необходимости подписывать его перед отправкой.
- Может потребоваться создать несколько пакетов MSIX, по одному для каждой поддерживаемой архитектуры (x64, Arm64)
Дальнейшие шаги
- Распространите с помощью winget: отправьте MSIX в репозиторий сообщества Windows диспетчер пакетов
-
Опубликовать в Microsoft Store: используйте
winapp storeдля отправки пакета. -
Set up CI/CD. Используйте действие
setup-WinAppCliGitHub для автоматизации упаковки в конвейере.
Windows developer