Поделиться через


Упаковка исполняемого файла CLI как MSIX

В этом руководстве описывается упаковка существующего исполняемого файла командной строки в виде пакета MSIX для распространения с помощью Windows Package Manager (winget), Microsoft Store или прямого распространения.

Необходимые условия

  • Существующий исполняемый файл CLI (.exe), который требуется упаковать
  • Windows 10 версии 1809 или более поздней

Шаги

1. Упорядочение приложения CLI

Поместите исполняемый файл CLI и все зависимости в выделенную папку:

mkdir MyCliPackage
cd MyCliPackage
# Copy your CLI executable and dependencies here

2. Установка winapp CLI

winget install microsoft.winappcli --source winget

3. Создание appxmanifest.xml

winapp manifest generate --executable .\yourcli.exe

Создается файл appxmanifest.xml со значениями по умолчанию, извлеченными из вашего исполняемого файла.

4. Настройка манифеста

Измените созданный appxmanifest.xml, чтобы добавить псевдоним выполнения, скройте приложение из меню "Пуск", и обновите сведения о приложении.

4.1 Добавьте требуемое пространство имен

Добавьте пространство имен uap5 к элементу Package.

<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 Скрытие из меню "Пуск"

В элементе <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> элемент:

<Extensions>
  <uap5:Extension Category="windows.appExecutionAlias">
    <uap5:AppExecutionAlias>
      <uap5:ExecutionAlias Alias="yourcli.exe" />
    </uap5:AppExecutionAlias>
  </uap5:Extension>
</Extensions>

Замените yourcli.exe нужным именем команды для интерфейса командной строки.

4.4 Обновление метаданных приложения

Обновите разделы Identity, Properties, и VisualElements так, чтобы они соответствовали вашему приложению CLI.

5. Создание сертификата разработки (необязательно)

Для локального тестирования и распространения за пределами Microsoft Store:

cd ~
winapp cert generate
winapp cert install

Это важно

Сохраните сертификат разработки за пределами папки, содержащей исполняемый файл CLI, чтобы избежать случайного включения его в пакет.

6. Упакуйте ваш интерфейс командной строки

winapp pack .\MyCliPackage --cert path\to\devcert.pfx

При этом создается .msix файл в текущем каталоге.

Подсказка

  • Microsoft Store подписывает MSIX для вас, не нужно подписывать перед отправкой.
  • Вам могут потребоваться отдельные пакеты MSIX для каждой поддерживаемой архитектуры (x64, Arm64).