You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure Pipelines发布管道中发布可手动下载的带版本分发文件?

问题场景

需要将软件版本发布为易于下载且带版本号的文件/安装程序,目标环境无网络,仅依赖Azure DevOps计划(无其他Azure服务),需支持团队成员手动下载安装。

已尝试但不适用的方法
  • 发布为"Pipeline Artifact":经典Release Pipelines中无法使用,报错Cannot upload to a pipeline artifact from release environment.
  • 发布为"Build artifact":若在构建管道中操作会打破构建与发布分离原则;且访问路径极深(Pipelines>(Pipeline名称)>(浏览运行名称)>Artifacts>(Artifact名称)),默认30天后会被删除
  • 使用"Universal Publish":虽能将版本正式发布到Azure Artifacts源并附带版本号,但误以为需通过Azure CLI下载,不符合"无需额外技术知识即可轻松下载"的需求
可行解决方案

方案一:通用包(Universal Packages)(推荐)

1. 纠正下载误区:UI直接下载通用包

Azure Artifacts通用包支持Web UI直接下载,步骤如下:

  • 进入项目Artifacts模块,选择对应Feed
  • 找到目标通用包,点击进入具体版本页面
  • 页面内提供明显的下载按钮,团队成员仅需Feed访问权限即可直接下载,无需Azure CLI

2. 动态分配版本号

  • 构建阶段生成版本号:在构建管道中使用内置变量$(Build.BuildNumber)(默认格式YYYYMMDD.R),或自定义格式(如$(Year).$(Month).$(DayOfMonth).$(Rev:r))作为版本号
  • 传递版本号到发布管道:在构建管道末尾添加Set Variables任务,设置变量(如PackageVersion)值为$(Build.BuildNumber),并勾选"让此变量对管道中所有后续任务可用"
  • 发布阶段使用版本号:在Release Pipeline的Universal Publish任务中,将版本号字段设置为$(PackageVersion),即可自动关联构建阶段生成的版本号

3. 保持构建与发布分离

  • 构建管道仅负责编译、打包生成安装程序,不处理分发
  • 发布管道拉取构建产出的安装包,通过Universal Publish任务发布到Azure Artifacts Feed,完全遵循职责分离原则

4. 配置版本保留策略

进入Feed的设置→保留策略,可自定义版本保留规则(如保留所有发布版本),或手动标记重要版本为永久保留,避免版本被自动删除

方案二:优化Build Artifact的访问与保留

若不愿使用通用包,可调整Build Artifact的配置:

  • 在经典Release Pipeline中添加Publish Build Artifacts任务,选择发布到Azure Pipelines,指定清晰的Artifact名称(如ReleaseInstallers)
  • 在构建管道的保留策略中,延长Artifact保留时间(最高可设置为永久保留)
  • 通过Azure DevOps的Artifact Feed创建指向该Artifact的链接,简化团队成员的访问路径

内容的提问来源于stack exchange,提问作者Agusfn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 07:42:41