MSIX 打包扩展

MSIX 打包扩展是一种 Azure DevOps 扩展,可帮助使用 MSIX 包格式生成、打包和签名 Windows 应用。

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 商城,并查找名为 MSIX 打包扩展的扩展。

浏览商城

创建管道

创建 Azure DevOps 项目的新管道。

选择管道

新建管道

将该选项选择为“使用经典编辑器创建无 YAML 的管道”。

使用经典编辑器

选择版本控制系统,并提供存储库和默认分支的详细信息。

配置源版本控制系统

当要求选择模板时,单击“从空作业开始”。

从空作业开始

将“代理规范”选择更改为 “windows-2019”,因为 MSIX 扩展仅在 Windows 代理上运行。

代理规范窗口

默认情况下,你可在管道中看到“代理作业 1”。 单击加号符号以向代理作业 1 添加任务。

在“添加任务”搜索栏中搜索”MSIX”,你可在 MSIX 打包扩展中看到之前提到的任务。 可根据要求添加所需的任务以自定义生成管道。 但我们将演示如何在此页上配置所有四项任务。

添加任务

MSIX 生成和打包

注意:如果想使用此任务生成打包应用,需要包含 Windows 应用程序打包项目,因为该任务需要 Package.appxmanifest.xml 文件。 系统不会自动添加该任务。

以下示例演示如何在 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 打包扩展的反馈。 请通过以下渠道联系我们: