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


Расширение упаковки MSIX

Расширение упаковки MSIX — это расширение для Azure DevOps, которое помогает создавать, упаковывать и подписывать приложения Windows с использованием формата пакета MSIX.

Рабочие процессы CI/CD стали неотъемлемой частью процесса разработки для повышения эффективности и качества при снижении затрат и времени вывода на рынок. Решение CI/CD Майкрософт Azure DevOps Pipelines широко распространено и популярно, но текущий процесс интеграции рабочих процессов сборки и развертывания для приложений, которые необходимо упаковать как MSIX в Azure Pipelines, является утомительным, особенно для людей, которые не являются экспертами Azure Pipelines или MSIX. Это расширение Azure DevOps предлагает простое и интуитивно понятное решение, что упрощает автоматизацию процесса сборки и развертывания для приложений, упакованных как MSIX, и для приложений с существующими рабочими процессами CI/CD для перехода в MSIX без нарушения их механизмов сборки и развертывания.

Расширение упаковки MSIX содержит следующие задачи, которые можно использовать для настройки вашего конвейера в соответствии с вашими требованиями:

  1. Сборка и пакет MSIX — создание и упаковка приложений Windows с помощью формата пакета MSIX
  2. Подписывание пакета MSIX — подписывание пакетов MSIX с помощью доверенного сертификата
  3. Файл установщика приложений для MSIX — создание или обновление файла appinstaller для приложений MSIX
  4. Создание пакета для подключения приложения MSIX — создание пакета VHDX для подключения приложения MSIX

Установка расширения

Просмотрите Azure DevOps Marketplace и найдите расширение MSIX Packaging Extension.

Просмотр маркетплейса

Создание конвейера

Создайте конвейер для проекта Azure DevOps.

Выбор конвейера

Новый конвейер

Выберите параметр "Использовать классический редактор" для создания конвейера без YAML.

Использование классического редактора

Выберите систему управления версиями и укажите сведения о репозитории и ветви по умолчанию.

Настройка исходных виртуальных машин

При запросе на выбор шаблона нажмите кнопку "Пуск" с пустого задания.

Начните с пустого задания

Измените выбор спецификации агента на windows-2019 , так как расширение MSIX выполняется только в агенте Windows.

Окна спецификации агента

Вы должны видеть Задание агента 1 по умолчанию в вашем конвейере. Щелкните значок плюса, чтобы добавить задачу в задание агента 1.

Найдите MSIX в строке поиска «Добавление задач», и вы увидите ранее упомянутые задачи в расширении MSIX Packaging. Вы можете по своему усмотрению создать конвейер, добавив задачи, необходимые в соответствии с вашими требованиями. Но мы покажем, как настроить все четыре задачи на этой странице. Образ расширения ADO1

Сборка и пакетирование MSIX

Примечание. Если вы пытаетесь создать упакованое приложение с помощью этой задачи, необходимо включить проект упаковки приложений Windows, так как задача нуждается в файле Package.appxmanifest. Задача не добавит это автоматически для вас.

Ниже приведен пример настройки задачи сборки и пакета в yaml-файле:

steps:
- task: MSIX.msix-ci-automation-task-dev.msix-packaging.MsixPackaging@1
  displayName: 'MSIX build and package'
  inputs:
    outputPath: '$(Build.ArtifactStagingDirectory)\MyApp.msix'
    solution: MyUWPApp.sln
    buildPlatform: x64
    updateAppVersion: true
    manifestFile: MyUWPApp/Package.appxmanifest
    appVersion: 2.0.0.0
    appPackageDistributionMode: SideloadOnly
    msbuildArchitecture: x64

Подписание MSIX пакета

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

Ниже приведен пример настройки задачи подписывания пакета в yaml-файле:

steps:
- task: MSIX.msix-ci-automation-task-dev.msix-signing.MsixSigning@1
  displayName: 'Sign MSIX package'
  inputs:
    certificateType: base64
    encodedCertificate: '$(kvtestcert)'

Файл установщика приложений для MSIX

Ниже приведен пример, в который показано, как настроить задачу файла AppInstaller в yaml-файле:

steps:
- task: MSIX.msix-ci-automation-task-dev.app-installer-file.AppInstallerFile@1
  displayName: 'Create App Installer file'
  inputs:
    package: '$(Build.ArtifactStagingDirectory)\MyApp.msix'
    outputPath: '$(Build.ArtifactStagingDirectory)\MyApp.appinstaller'
    uri: 'https://myuwpapp-demo.azurewebsites.net/MyApp.appinstaller'
    mainItemUri: 'https://myuwpapp-demo.azurewebsites.net/MyApp.msix'
    showPromptWhenUpdating: true
    updateBlocksActivation: true

Создание пакета для подключения приложения MSIX

Ниже приведен пример настройки задачи для создания VHDX-файла для подключения приложения в yaml-файле:

steps:
- task: MSIX.msix-ci-automation-task-dev.msix-app-attach.MsixAppAttach@1
  displayName: 'Create package for MSIX app attach'
  inputs:
    package: '$(Build.ArtifactStagingDirectory)\MyApp.msix'
    vhdxOutputPath: '$(Build.ArtifactStagingDirectory)\MyApp.vhdx'

Публикация пакета подключения приложения MSIX к AVD

Ниже приведен пример настройки задачи подключения приложения avd в yaml-файле:

steps:
- task: MSIX.msix-ci-automation-task-dev.avd-app-attach-publish.AVDAppAttachPublish@0
  displayName: 'Publish MSIX app attach package to AVD'
  inputs:
    vhdxPath: '$(Build.ArtifactStagingDirectory)/App.vhdx' 
    connectedServiceNameARM: 'ed1db943-1e1c-4eac-8683-ead2abc281b5' 
    resourceGroupName: 'appattach-test-rg' 
    storageAccount: 'appattachteststorage' 
    fileShare: 'appattach-test-fs' 
    hostPool: 'appattach-hostpool' 
    workSpace: 'appattach-test-ws' 
    applicationGroup: 'appattach-test-ag-rail' 

Способы предоставления отзывов

Мы хотели бы услышать ваши отзывы о расширении MSIX для пакетирования. Обратитесь к нам через следующие каналы: