MSIX パッケージ拡張機能

"MSIX パッケージ" 拡張機能は、MSIX パッケージ形式を使用した Windows アプリのビルド、パッケージ化、および署名に利用できる Azure DevOps の拡張機能です。

CI/CD ワークフローは、市場投入までのコストと時間を短縮しつつ効率性と品質を向上させるために、開発プロセスに欠かせない要素になっています。 Microsoft の CI/CD ソリューション Azure DevOps パイプラインは広く採用され普及していますが、アプリのビルドと展開のワークフローを統合する現在のプロセスは、MSIX として Azure Pipelines にパッケージ化する必要があり、特に Azure Pipelines または MSIX の専門家以外の人にとっては面倒です。 この Azure DevOps 拡張機能によって、簡単かつ直感的なソリューションが提供されます。これにより、MSIX としてパッケージ化されているアプリや既存の CI/CD ワークフローを利用するアプリのビルドと展開のプロセスをより簡単に自動化して、ビルドと展開のメカニズムを損なうことなく MSIX に移行することができます。

"MSIX パッケージ" 拡張機能には、要件に応じてパイプラインをカスタム ビルドする際に使用できる次のタスクが含まれています。

  1. MSIX のビルドおよびパッケージ - MSIX パッケージ形式を使用して Windows アプリをビルドしてパッケージ化する
  2. MSIX パッケージ署名 - 信頼された証明書を使用して MSIX パッケージに署名する
  3. MSIX 用のアプリ インストーラー ファイル - MSIX アプリの .appinstaller ファイルを作成または更新する
  4. MSIX アプリのアタッチ用にパッケージを作成する - MSIX アプリのアタッチ用に VHDX パッケージを作成する

拡張機能をインストールする

Azure DevOps Marketplace を参照し、拡張機能の名前 "MSIX パッケージ" 拡張機能を探します。

Browse the marketplace

パイプラインを作成する

Azure DevOps プロジェクトの新しいパイプラインを作成します。

select pipeline

New pipeline

[Use the classic editor to create a pipeline without YAML]\(クラシック エディターを使用して YAML なしでパイプラインを作成する\) のオプションを選択します。

Use the classic editor

バージョン管理システムを選択して、リポジトリと既定のブランチの詳細を指定します。

Configure source vcs

[テンプレートの選択] を求められた場合には、[start with an Empty job]\(空のジョブから始めます\) をクリックします。

Start with an empty job

MSIX 拡張機能は Windows エージェント上でのみ実行されるため、[エージェントの指定] の選択を windows-2019 に変更します。

Agent specification windows

既定では、パイプラインに [Agent job 1] が表示されます。 プラス記号をクリックして、"Agent job 1 にタスクを追加" します。

[タスクの追加] 検索バーで MSIX を検索すると、"MSIX パッケージ" 拡張機能に前述したタスクが表示されます。 要件に応じて、必要なタスクを追加することによって、パイプラインをカスタム ビルドできます。 ただし、このページでは、4 つのすべてのタスクの構成方法について説明します。ADO Extension Image1

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 用のアプリ インストーラー ファイル

次の例は、yaml ファイルで AppInstaller ファイル タスクを構成する方法を示しています。

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 アプリのアタッチ用にパッケージを作成する

次の例は、yaml ファイルでアプリのアタッチ用の VHDX ファイルを作成するようにタスクを構成する方法を示しています。

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 に発行する

次の例は、yaml ファイルで avd アプリ アタッチ タスクを構成する方法を示しています。

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 パッケージ" 拡張機能についてのフィードバックをお寄せください。 次のチャネルを通じてご連絡ください。