Estensione per la creazione di pacchetti MSIX

MSIX Packaging è un'estensione di Azure DevOps che consente di compilare, assemblare in pacchetti e firmare le app di Windows usando il formato di pacchetto MSIX.

I flussi di lavoro CI/CD sono diventati parte integrante del processo di sviluppo per migliorare l'efficienza e la qualità, riducendo al tempo stesso i costi e i tempi di commercializzazione. La soluzione CI/CD di Microsoft Azure DevOps Pipelines è ampiamente adottata e diffusa, ma il processo corrente di integrazione dei flussi di lavoro di compilazione e distribuzione per le app che devono essere inserite come MSIX in Azure Pipelines è noioso, in particolare per le persone che non sono esperti di Azure Pipelines o MSIX. Questa estensione Azure DevOps offre una soluzione semplice e intuitiva che semplifica l'automazione del processo di compilazione e distribuzione per le app in pacchetto come MSIX e per le app con flussi di lavoro CI/CD esistenti per passare a MSIX senza interrompere i meccanismi di compilazione e distribuzione.

L'estensione MSIX Packaging offre le funzionalità seguenti, che è possibile usare per personalizzare la pipeline in base alle proprie esigenze:

  1. MSIX build and package: per compilare le app di Windows e assemblarle in pacchetti in formato MSIX
  2. MSIX package signing: per firmare i pacchetti MSIX usando un certificato attendibile
  3. App installer file for MSIX: per creare e aggiornare un file con estensione appinstaller per le app MSIX
  4. Create package for MSIX app attach: per creare un pacchetto VHDX per il montaggio app MSIX

Installare l'estensione

Esplorare Azure DevOps Marketplace e cercare l'estensione MSIX Packaging.

Browse the marketplace

Creare una pipeline

Creare una nuova pipeline per il progetto di Azure DevOps.

select pipeline

New pipeline

Selezionare l'opzione Usa l'editor classico per creare una pipeline senza YAML.

Use the classic editor

Selezionare il sistema di controllo della versione e specificare i dettagli relativi al repository e al ramo predefinito.

Configure source vcs

Quando viene chiesto di selezionare un modello, fare clic su Inizia con un processo vuoto.

Start with an empty job

Modificare la selezione della specifica dell'agente in windows-2019 perché l'estensione MSIX viene eseguita solo in un agente Windows.

Agent specification windows

Per impostazione predefinita, nella pipeline dovrebbe essere visualizzato il processo di Agent 1 . Fare clic sul segno più per aggiungere un'attività a Processo agente 1.

Cercare MSIX nella barra di ricerca Aggiungi attività e visualizzare le attività indicate in precedenza nell'estensione MSIX Packaging. È possibile creare una pipeline personalizzata aggiungendo le attività necessarie in base alle proprie esigenze. Verrà tuttavia illustrato come configurare tutte e quattro le attività in questa pagina.ADO Extension Image1

MSIX build and package

Nota: se si sta tentando di compilare un'app in pacchetto usando questa attività, sarà necessario includere il progetto di creazione pacchetti di applicazioni Windows, perché l'attività richiede il file Package.appxmanifest. L'attività non verrà aggiunta automaticamente.

Ecco un esempio che illustra come configurare l'attività di compilazione e pacchetto nel file 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

Firma dei pacchetti MSIX

L'attività di firma consente la firma usando un certificato. Il certificato può provenire dalla libreria Secure Files o essere codificato come stringa come se fosse stato recuperato con l'attività Azure Key Vault.

Di seguito è riportato un esempio che illustra come configurare l'attività di firma del pacchetto nel file yaml:

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

File del programma di installazione app per MSIX

Di seguito è riportato un esempio che illustra come configurare l'attività file AppInstaller nel file 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

Creare un pacchetto per il montaggio app MSIX

Ecco un esempio che illustra come configurare l'attività per creare un file VHDX per il collegamento dell'app nel file 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'

Pubblicare il pacchetto MSIX App Attach in AVD

Ecco un esempio che illustra come configurare l'attività di collegamento dell'app avd nel file 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' 

Come inviare feedback

Il feedback degli utenti sull'estensione MSIX Packaging sarà molto apprezzato. Per contattare Microsoft sono disponibili i canali seguenti:

  • Recensire l'estensione in Azure DevOps Marketplace
  • MSIX Tech Community
  • Progetto open source GitHub: il codice sorgente di questa estensione fa parte del progetto open source di MSIX SDK. I contributi e i suggerimenti degli utenti sono ben accetti.