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 :
Génération et empaquetage MSIX : générer et empaqueter des applications Windows au format de package MSIX
Signature de package MSIX : signer des packages MSIX avec un certificat approuvé
Fichier de programme d’installation d’application pour MSIX : créer ou mettre à jour un fichier .appinstaller pour les applications MSIX
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.
Créer un pipeline
Créez un pipeline pour votre projet Azure DevOps.
Sélectionnez l’optionUse the classic editor to create a pipeline without YAML (Utiliser l’éditeur classique pour créer un pipeline sans YAML).
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.
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).
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.
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.
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.
Display name (Nom complet) : donnez à votre tâche le nom de votre choix.
Output Path (Chemin de sortie) : spécifiez le chemin de sortie du package MSIX qui sera créé par cette tâche. Le chemin dans l’exemple ci-dessus utilise la variable prédéfinieBuild.ArtifactStagingDirectory, c’est-à-dire le chemin local sur l’agent pour stocker les artefacts. Il est utilisé ici pour stocker les fichiers de sortie de la tâche qui pourront être publiés ultérieurement à l’aide d’une tâche de publication d’artefacts.
Build Solution with MSBuild (Générer la solution avec MSBuild) : sélectionnez cette option pour générer votre solution avec msbuild pour la plateforme cible spécifiée. Laissez la case décochée si vous avez déjà des binaires qui doivent simplement être empaquetés. Si vous laissez la case décochée, vous êtes invité à fournir le chemin à vos binaires.
Project to Build (Projet à générer) : indiquez le chemin à votre fichier projet ou solution à générer.
Clean before Building (Nettoyer avant la génération) : cochez cette case pour que la tâche exécute une build propre avant la génération.
Generate MSIX Bundle (Générer un bundle MSIX) : cochez cette case pourgénérer un bundle MSIX à la place d’un package. Veillez à nommer votre fichier de sortie dans l’option Output Path (Chemin de sortie) avec une extension .msixbundle à la place de .msix.
Configuration : choisissez une configuration de build (Debug ou Release).
Platform (Plateforme) : spécifiez la plateforme de génération cible. Par exemple, choisissez x64, x86 ou Any CPU (N’importe quel processeur).
Update App Version in Manifest (Mettre à jour la version de l’application dans le manifeste) : cochez cette case pour modifier la version de l’application spécifiée dans le fichier .appxmanifest de l’application. Cette opération ne remplace pas le fichier .appxmanifest, mais modifie la version de l’application dans le package MSIX de sortie généré. Si cette option est sélectionnée, vous êtes invité à fournir le chemin du fichier manifeste et le numéro de version d’application à affecter à l’application.
Application Package Distribution Mode (Mode de distribution du package d’application) : sélectionnez le mode dans le menu déroulant pour générer un package d’application de Store ou non.
Architecture et version MSBuild : personnalisez votre MSBuild en spécifiant des options avancées.
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.
Cet exemple montre la tâche lorsque la source du certificat est la bibliothèque de fichiers sécurisés.
Cet exemple montre la tâche lorsque la source du certificat est un Azure Key Vault.
Display name (Nom complet) : donnez à votre tâche le nom de votre choix.
Package to sign (Package à signer) : la tâche de signature de package MSIX utilise SignTool pour signer tous les fichiers correspondant à ce chemin d’accès, qu’il s’agisse de packages ou de bundles MSIX.
Type de fichier de certificat : sélectionnez la source du fichier de certificat à utiliser.
Time Stamp Server (Serveur d’horodatage) : URL qui spécifie l’adresse d’un serveur d’horodatage. Il s'agit d'un paramètre facultatif.
Fichier de programme d’installation d’application pour MSIX
Display name (Nom complet) : donnez à votre tâche le nom de votre choix.
Package : chemin du package ou bundle pour lequel vous souhaitez créer un programme d’installation d’application.
Output File Path (Chemin du fichier de sortie) : chemin du fichier de programme d’installation d’application à écrire.
Method to Create App Installer File (Méthode pour créer le fichier d’installation d’application) : indiquez si vous souhaitez créer un fichier de programme d’installation d’application ou mettre à jour un fichier existant. Si vous choisissez de mettre à jour un fichier existant, vous êtes invité à fournir le chemin du fichier de programme d’installation d’application existant.
Version for App Installer file (Version du fichier de programme d’installation d’application) : numéro de version qui sera donné. Doit prendre la forme (version majeure).(version mineure).(build).(révision).
URI : URI web du fichier de programme d’installation d’application redirigé.
Main Package/Bundle URI (URI de package/bundle principal) : URI de l’emplacement du package/bundle d’application.
Update On Launch (Mettre à jour au lancement) : sélectionnez cette option pour que l’application recherche les mises à jour au lancement. Si cette case est cochée, vous êtes invité à fournir des détails tels que Hours Between Update Checks (Nombre d’heures entre les vérifications de mise à jour), Show UI to User when Updating (Afficher l’interface utilisateur lors de la mise à jour) et Update to Block App Activation (La mise à jour bloque l’activation de l’application).
Créer un package pour l’attachement d’application MSIX
Display name (Nom complet) : donnez à votre tâche le nom de votre choix.
Package Path (Chemin du package) : chemin du package/bundle MSIX.
VHDX Output Path (Chemin de sortie VHDX) : chemin du fichier VHDX qui sera créé par la tâche.
VHDX size (Taille du VHDX) : taille maximale en Mo du VHDX.
Après avoir configuré toutes les tâches, vous pouvez utiliser une tâche Publish build artifacts (Publier les artefacts de build) pour déposer tous les artefacts de l’emplacement temporaire vers les artefacts Azure Pipelines ou un partage de fichiers de votre choix.
Publier le package MSIX dans l'application attachée à l'AVD
Display name (Nom complet) : donnez à votre tâche le nom de votre choix.
Package Path (Chemin du package) : chemin du package/bundle MSIX.
VHDX Output Path (Chemin de sortie VHDX) : chemin du fichier VHDX qui sera créé par la tâche.
VHDX size (Taille du VHDX) : taille maximale en Mo du VHDX.
Display name (Nom complet) : donnez à votre tâche le nom de votre choix.
Chemin VHDX - Il s'agit du chemin du fichier VHDX qui sera app attached (publié) à Azure Virtual Desktop (AVD).
Abonnement Azure - Il s'agit de la connexion de service à l'abonnement azure cible auquel votre application doit être app attachée. La liste déroulante répertorie tous les abonnements azure disponibles pour l'utilisateur ADO actuellement connecté, et l'utilisateur peut sélectionner n'importe lequel d'entre eux et établir une connexion de service avec lui.
Groupe de ressources - Sélectionnez le groupe de ressources auquel votre application doit être publiée. Ce groupe de ressources doit contenir toutes les ressources cibles requises pour l'attachement de l'application, telles que le compte de stockage, le pool d'hôtes, l'espace de travail, le groupe d'applications. Ce menu déroulant répertorie tous les groupes de ressources disponibles dans le cadre de l'abonnement Azure sélectionné.
Compte de stockage - Sélectionnez le compte de stockage vers lequel votre application (ou VHDX) sera téléchargée. Cette liste déroulante répertorie tous les comptes de stockage disponibles sous le groupe de ressources sélectionné.
Partage de fichiers - Sélectionnez le partage de fichiers dans le compte de stockage sélectionné vers lequel votre application (ou VHDX) sera téléchargée. Cette liste déroulante répertorie tous les partages de fichiers disponibles dans le compte de stockage sélectionné.
Pool d'hôtes - Sélectionnez le pool d'hôtes à utiliser pour attacher l'application. Cette liste déroulante répertorie tous les pools d'hôtes disponibles sous le groupe de ressources sélectionné.
Espace de travail - Sélectionnez l'espace de travail à utiliser pour attacher l'application. Cette liste déroulante répertorie tous les espaces de travail disponibles dans le groupe de ressources sélectionné.
Groupe d'application - Sélectionnez le groupe d'application à utiliser pour attacher l'application. Cette liste déroulante affiche tous les groupes d'application disponibles sous le groupe de ressources sélectionné.
Après avoir configuré toutes les tâches, vous pouvez utiliser une tâche Publish build artifacts (Publier les artefacts de build) pour déposer tous les artefacts de l’emplacement temporaire vers les artefacts Azure Pipelines ou un partage de fichiers de votre choix.
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
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.