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 打包扩展包含以下任务,可根据要求用于自定义生成管道:
- MSIX 生成和打包 - 使用 MSIX 包格式生成和打包 Windows 应用
- MSIX 包签名 - 使用受信任的证书对 MSIX 包进行签名
- MSIX 的应用安装程序文件 - 为 MSIX 应用创建或更新 .appinstaller 文件
- 为 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'
向 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 打包扩展的反馈。 请通过以下渠道联系我们:
- 查看 Azure DevOps 商城上的扩展
- MSIX 技术社区
- GitHub 开放源代码项目 - 此扩展的源代码是 MSIX SDK 开放源代码项目的一部分,欢迎对此提出意见和建议。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈