MSIX 패키징 확장

MSIX 패키징 확장은 MSIX 패키지 형식을 사용하여 Windows 앱을 빌드, 패키징 및 서명하는 데 도움이 되는 Azure DevOps 확장입니다.

CI/CD 워크플로는 비용과 출시 시간을 줄이면서 효율성과 품질을 개선하기 위한 개발 프로세스의 필수적인 부분이 되었습니다. Microsoft의 CI/CD 솔루션 Azure DevOps Pipelines는 널리 채택되고 널리 사용되지만, 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

클래식 편집기를 사용하여 YAML 없이 파이프라인 만들기 옵션을 선택합니다.

Use the classic editor

버전 제어 시스템을 선택하고 리포지토리 및 기본 분기 세부 정보를 제공합니다.

Configure source vcs

템플릿을 선택하라는 메시지가 표시되면 빈 작업으로 시작을 클릭합니다.

Start with an empty job

MSIX 확장은 Windows 에이전트에서만 실행되므로 에이전트 사양 선택을 windows-2019로 변경합니다.

Agent specification windows

파이프라인에는 기본적으로 에이전트 작업 1이 표시됩니다. 에이전트 작업 1에 작업을 추가하려면 더하기 기호를 클릭합니다.

작업 추가 검색 창에서 MSIX를 검색합니다. 그러면 이전에 언급한 작업이 MSIX 패키징 확장 프로그램에 표시됩니다. 요구 사항에 따라 필요한 작업을 추가하여 파이프라인 빌드를 사용자 지정할 수 있습니다. 그러나 이 페이지에서 네 가지 작업을 모두 구성하는 방법을 보여 줍니다.ADO Extension Image1

MSIX 빌드 및 패키지

참고: 이 작업을 사용하여 패키지된 앱을 빌드하려는 경우 작업에 Package.appxmanifest 파일이 필요하므로 Windows 애플리케이션 패키징 프로젝트를 포함해야 합니다. 작업은 자동으로 추가되지 않습니다.

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'

AVD에 MSIX 앱 연결 패키지 게시

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 패키징 확장에 대한 피드백을 보내주시기 바랍니다. 다음 채널을 통해 문의해 주세요.