Extension d’empaquetage MSIX

L’extension MSIX Packaging est une extension Azure DevOps qui permet de générer, d’empaqueter et de signer des applications Windows en utilisant le format de package MSIX.

Les workflows CI/CD font désormais partie intégrante du processus de développement pour améliorer l’efficacité et la qualité tout en réduisant les coûts et le délai de mise sur le marché. Les pipelines Azure DevOps de la solution CI/CD de Microsoft sont largement adoptés et populaires, mais le processus actuel d’intégration des workflows de génération et de déploiement pour les applications qui doivent être packagées au format MSIX dans Azure Pipelines est fastidieux, en particulier pour les personnes qui ne maîtrisent pas Azure Pipelines ou MSIX. Cette extension Azure DevOps offre une solution simple et intuitive qui facilite l’automatisation du processus de génération et de déploiement pour les applications en cours d’empaquetage au format MSIX. Elle permet également aux applications avec des workflows CI/CD existants de passer à MSIX sans interrompre leurs mécanismes de génération et de déploiement.

L’extension MSIX Packaging contient les tâches suivantes que vous pouvez utiliser pour générer sur mesure votre pipeline en fonction de vos besoins :

  1. Génération et empaquetage MSIX : générer et empaqueter des applications Windows au format de package MSIX
  2. Signature de package MSIX : signer des packages MSIX avec un certificat approuvé
  3. Fichier de programme d’installation d’application pour MSIX : créer ou mettre à jour un fichier .appinstaller pour les applications MSIX
  4. Créer un package pour l’attachement d’application MSIX : créer un package VHDX pour l’attachement d’application MSIX

Installer l’extension

Recherchez l’extension nommée MSIX Packaging dans la Place de marché Azure DevOps.

Parcourir la place de marché

Créer un pipeline

Créez un pipeline pour votre projet Azure DevOps.

sélectionner un pipeline

Nouveau pipeline

Sélectionnez l’optionUse the classic editor to create a pipeline without YAML (Utiliser l’éditeur classique pour créer un pipeline sans YAML).

Utiliser l’éditeur classique

Sélectionnez votre système de gestion de version et indiquez les détails de votre référentiel et de la branche par défaut.

Configurer le système de gestion de version source

Quand vous êtes invité à sélectionner un modèle (Select a template), cliquez sur start with an Empty job (Démarrer par un travail vide).

Démarrer par une tâche vide

Remplacez votre sélection dans Agent Specification (Spécification de l’agent) par windows-2019 puisque l’extension MSIX s’exécute uniquement sur un agent Windows.

Fenêtres de spécification de l’agent

Vous devriez voir Agent job 1 (Travail d’agent 1) par défaut dans votre pipeline. Cliquez sur le signe plus (+) pour ajouter une tâche au travail d’agent 1 (Add a task to Agent job 1).

Recherchez MSIX dans la barre de recherche Add tasks (Ajouter des tâches). Vous devriez voir les tâches mentionnées précédemment dans l’extension MSIX Packaging. Vous pouvez générer votre pipeline sur mesure en ajoutant les tâches dont vous avez besoin. Nous allons voir comment configurer les quatre tâches sur cette page.

Ajouter une tâche

Générer et empaqueter au format MSIX

Remarque : Si vous essayez de générer une application empaquetée à l’aide de cette tâche, vous devez inclure le Projet de création de packages d’applications Windows car la tâche a besoin du fichier Package.appxmanifest. La tâche ne l’ajoute pas automatiquement pour vous.

Voici un exemple qui montre comment configurer la tâche de génération et de package dans le fichier 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

Signature de package MSIX

La tâche de signature permet la signature à l’aide d’un certificat. Le certificat peut provenir de la bibliothèque de fichiers sécurisés ou être encodé sous la forme d’une chaîne comme si elle avait été extraite avec la tâche Azure Key Vault.

Voici un exemple qui montre comment configurer la tâche de signature de package dans le fichier YAML :

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

Fichier de programme d’installation d’application pour MSIX

Voici un exemple qui montre comment configurer la tâche du fichier AppInstaller dans le fichier 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

Créer un package pour l’attachement d’application MSIX

Voici un exemple qui montre comment configurer la tâche pour créer un fichier VHDX pour l’attachement d’application dans le fichier 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'

Faites-nous part de vos commentaires

Nous aimerions avoir votre avis sur l’extension MSIX Packaging. Contactez-nous par le biais des canaux suivants :

  • Passer en revue l’extension sur la Place de marché Azure DevOps
  • MSIX Tech Community
  • Projet open source sur GitHub : le code source de cette extension fait partie du projet open source MSIX SDK, qui accepte les contributions et les suggestions.