Расширение Упаковка MSIX — это расширение Azure DevOps, которое помогает создавать, упаковывать и подписывать приложения Windows с помощью формата упаковки MSIX.
Рабочие процессы CI/CD стали неотъемлемой частью процесса разработки. Они позволяют повысить эффективность и качество, а также сократить затраты и ускорить выход на рынок. Хотя решение Azure DevOps Pipelines для CI/CD от Майкрософт пользуется популярностью, текущий процесс интеграции рабочих процессов сборки и развертывания для приложений, которые должны упаковываться как MSIX в Azure Pipelines, достаточно утомителен, особенно для пользователей без большого опыта работы с Azure Pipelines и MSIX. Это расширение Azure DevOps предоставляет простое и интуитивно понятное решение, которое позволяет автоматизировать процесс сборки и развертывания приложений, упаковываемых в формат MSIX, а также для приложений с существующими рабочими процессами CI/CD, переносимых в формат MSIX, без нарушения механизмов их сборки и развертывания.
Расширение Упаковка MSIX содержит следующие задачи, которые можно использовать для настраиваемой сборки конвейера в соответствии с вашими требованиями:
Сборка и упаковка MSIX — создание и упаковка приложений Windows с помощью формата упаковки MSIX.
Подписывание пакетов MSIX — подписывание пакетов MSIX с помощью доверенного сертификата.
Файл установщика приложений для MSIX — создание или обновление файла .appinstaller для приложений MSIX.
Создание пакета для подключения приложения MSIX — создание пакета VHDX для подключения к приложению MSIX.
Установка расширения
Перейдите в Azure DevOps Marketplace и найдите имя расширения Упаковка MSIX.
Создание конвейера
Создайте новый конвейер для проекта Azure DevOps.
Щелкните Use the classic editor to create a pipeline without YAML (Использовать классический редактор для создания конвейера без YAML).
Выберите систему управления версиями и укажите сведения о репозитории и ветви по умолчанию.
На запрос Выберите шаблон выберите вариант начать с пустым заданием.
Измените значение параметра Спецификация агента на windows-2019, так как расширение MSIX выполняется только в агенте Windows.
По умолчанию в конвейере должна отображаться запись Agent job 1 (Задание агента 1). Щелкните знак плюса, чтобы добавить задачу в задание агента 1.
Найдите MSIX на панели поиска Добавление задач, и вы увидите упомянутые ранее задачи расширения Упаковка MSIX. Вы можете выполнить настраиваемую сборку конвейера, добавив необходимые задачи в соответствии с вашими требованиями. Но мы покажем, как настроить все четыре задачи на этой странице.
Сборка и упаковка MSIX
Примечание. Если вы пытаетесь создать упакованное приложение с помощью этой задачи, необходимо включить Проект упаковки приложений Windows, так как задаче требуется файл Package.appxmanifest. Задача не выполняет добавление автоматически.
Output Path (Выходной путь) — выходной путь для пакета MSIX, который будет создан этой задачей. В пути в приведенном выше примере используется предопределенная переменнаяBuild.ArtifactStagingDirectory, которая представляет локальный путь в агенте для хранения артефактов. Она используется здесь для хранения выходных файлов задач, которые позже могут быть опубликованы с помощью задачи публикации артефактов.
Build Solution with MSBuild (Сборка решения с помощью MSBuild) — создание решения с помощью MSBuild для указанной целевой платформы. Не устанавливайте этот флажок, если у вас уже есть двоичные файлы, которые нужно упаковать. Если оставить флажок снятым, вам будет предложено указать путь к двоичным файлам.
Project to Build (Проект для сборки) — укажите путь к файлу проекта или решения, который необходимо создать.
Clean before Building (Очистить перед сборкой) — установите этот флажок, если требуется, чтобы задача выполняла чистую сборку перед сборкой.
Generate MSIX Bundle (Создать пакет MSIX) — установите этот флажок, чтобы создать набор MSIX вместо пакета. Имя выходного файла следует задать в поле Output Path (Выходной путь) с расширением .msixbundle вместо .msix.
Configuration (Конфигурация) — выберите вариант Debug (Отладка) или Release (Выпуск).
Platform (Платформа) — выберите целевую платформу сборки, например x64, x86 или Any CPU (Любой ЦП).
Update App Version in Manifest (Обновить версию приложения в манифесте) — установите этот флажок, чтобы изменить версию приложения, указанную в файле .appxmanifest приложения. Это не приведет к перезаписи файла .appxmanifest, но изменит версию приложения в созданном выходном пакете MSIX. Если вы выберете этот вариант, вам будет предложено указать путь к файлу манифеста и номер версии приложения, который необходимо задать для приложения.
Application Package Distribution Mode (Режим распространения пакета приложения) — выберите режим в раскрывающемся меню, чтобы создать пакет приложения для магазина или альтернативных способов распространения.
MSBuild Version and Architecture (Версия и архитектура MSBuild) — настройте MSBuild, указав расширенные параметры.
Подписывание пакетов MSIX
Задача подписывания позволяет добавить подпись с помощью сертификата. Сертификат может поступать из библиотеки защищенных файлов или быть закодирован в виде строки, как при получении с помощью задачи Azure Key Vault.
В этом примере показана задача, в которой источником сертификата является библиотека защищенных файлов.
В этом примере показана задача, в которой источником сертификата является Azure Key Vault.
Display name (Отображаемое имя) — имя задачи.
Package to sign (Пакет для подписывания) — задача подписывания пакетов MSIX использует средство SignTool для подписывания всех файлов, соответствующих этому пути, независимо от того, являются ли они пакетами или наборами MSIX.
Certificate file type (Тип файла сертификата) — выберите источник сертификата, который следует использовать.
Time Stamp Server (Сервер меток времени) — URL-адрес сервера меток времени. Этот параметр является необязательным.
Package (Пакет) — это путь к пакету или набору, для которого требуется создать Установщик приложений.
Output File Path (Путь к выходному файлу) — путь к файлу Установщика приложений, который необходимо записать.
Method to Create App Installer File (Способ создания файла Установщика приложений) — выберите, следует ли создать новый файл Установщика приложений или обновить существующий. Если вы решили обновить существующий файл, вам будет предложено указать путь к существующему файлу Установщика приложений.
Version for App Installer file (Версия файла Установщика приложений) — номер версии, который будет указан. Требуемый формат: (основная).(дополнительная).(сборка).(редакция).
URI — URI веб-сайта перенаправленного файла Установщика приложений.
Main Package/Bundle URI (Основной URI пакета или набора) — URI расположения пакета приложения или набора.
Update On Launch (Обновлять при запуске) — установите этот флажок, чтобы приложение проверяло наличие обновлений при запуске. Если этот флажок установлен, вам будет предложено настроить такие параметры, как Hours Between Update Checks (Время в часах между проверками обновлений), Show UI to User when Updating (Отображать пользовательский интерфейс для пользователя при обновлении) и Update to Block App Activation (Обновлять для блокировки активации приложения).
Package Path (Путь к пакету) — путь к пакету или набору MSIX.
VHDX Output Path (Выходной путь VHDX) — путь к VHDX-файлу, который будет создан задачей.
VHDX size (Размер VHDX) — максимальный размер VHDX-файла (в МБ).
После настройки всех задач можно использовать задачу Публикация артефактов сборки, чтобы удалить все артефакты из временного расположения для артефактов Azure Pipelines или указанной общей папки.
Публикация пакета подключения приложения MSIX к AVD
Package Path (Путь к пакету) — путь к пакету или набору MSIX.
VHDX Output Path (Выходной путь VHDX) — путь к VHDX-файлу, который будет создан задачей.
VHDX size (Размер VHDX) — максимальный размер VHDX-файла (в МБ).
Display name (Отображаемое имя) — имя задачи.
Путь VHDX — это путь К VHDX-файлу, который будет присоединен к приложению (публикация) в Виртуальном рабочем столе Azure (AVD).
Подписка Azure. Это подключение службы к целевой подписке Azure, которую приложение должно быть присоединено. В раскрывающемся списке перечислены все подписки Azure, доступные для текущего пользователя ADO, вошедшего в систему, и пользователь может выбрать любой из этих подписок и установить подключение к службе.
Группа ресурсов— выберите группу ресурсов, которую необходимо опубликовать в приложении. Эта группа ресурсов должна содержать все целевые ресурсы, необходимые для подключения приложений, таких как учетная запись хранения, пул узлов, рабочая область, группа приложений. В этом раскрывающемся списке перечислены все группы ресурсов, доступные в выбранной подписке Azure.
Учетная запись хранения. Выберите учетную запись хранения, которую вы хотите отправить (или VHDX). В этом раскрывающемся списке перечислены все учетные записи хранения, доступные в выбранной группе ресурсов.
Общая папка — выберите общую папку в выбранной учетной записи хранения, которую нужно отправить приложению (или VHDX). В этом раскрывающемся списке перечислены все общие папки, доступные в выбранной учетной записи хранения.
Пул узлов — выберите пул узлов, который будет использоваться для присоединения приложения. В раскрывающемся списке перечислены все пулы узлов, доступные в выбранной группе ресурсов.
Рабочая область— выберите рабочую область, которая будет использоваться для присоединения приложения. В раскрывающемся списке перечислены все рабочие области, доступные в выбранной группе ресурсов.
Группа приложений — выберите группу приложений, которая будет использоваться для присоединения приложения. В раскрывающемся списке перечислены все группы приложений, доступные в выбранной группе ресурсов.
После настройки всех задач можно использовать задачу Публикация артефактов сборки, чтобы удалить все артефакты из временного расположения для артефактов Azure Pipelines или указанной общей папки.
Способы предоставления отзывов
Мы будем рады услышать ваши отзывы о расширении Упаковка MSIX. Свяжитесь с нами с помощью следующих каналов:
Проект GitHub с открытым кодом — исходный код для этого расширения является частью проекта MSIX SDK с открытым кодом. Мы будем рады вашему участию и предложениям.