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

Azure DevOps跨仓库下载构件失败:构建定义无效问题咨询

解决Azure Pipeline下载构件时的Definition名称无效错误

问题概述

使用DownloadBuildArtifacts@0任务下载特定构建的构件时,触发错误:

##[error]Definition name xyz didn't correspond to a valid definition

错误源于对构建定义的概念理解偏差,以及YAML参数使用不当。

什么是构建定义

构建定义是Azure DevOps中构建流水线的核心配置模板,包含构建步骤、触发规则、变量等所有构建逻辑的配置。每个构建流水线都对应唯一的构建定义,可通过定义ID或定义名称标识。

错误原因分析

你错误地将流水线名称填入了definition字段——该字段仅接受数字类型的构建定义ID。如果想用流水线名称指定目标,需改用definitionName参数。

解决步骤

1. 获取构建定义ID或名称

  • 登录Azure DevOps,进入目标项目的流水线页面
  • 找到目标构建流水线并进入详情页
  • 查看浏览器地址栏,格式类似https://dev.azure.com/你的组织名/你的项目名/_build?definitionId=123,其中123就是构建定义ID;流水线详情页的标题即为构建定义名称

2. 修正YAML配置

提供两种正确配置方式:

方式一:使用构建定义ID

- task: DownloadBuildArtifacts@0
  displayName: 'Download Artifacts'
  inputs:
    buildType: 'specific'
    project: 'YourProjectName'  # 替换为你的Azure DevOps项目名称
    definition: '123'  # 替换为获取到的构建定义ID
    buildId: 'YourBuildId'  # 指定要下载构件的构建ID
    downloadType: 'single'
    artifactName: 'YourArtifactName'  # 替换为已发布的构件名称
    downloadPath: '$(System.DefaultWorkingDirectory)/DownloadedArtifacts'

方式二:使用构建定义名称(改用definitionName参数)

- task: DownloadBuildArtifacts@0
  displayName: 'Download Artifacts'
  inputs:
    buildType: 'specific'
    project: 'YourProjectName'  # 替换为你的Azure DevOps项目名称
    definitionName: 'YourBuildPipelineName'  # 替换为你的构建流水线名称
    buildId: 'YourBuildId'  # 指定要下载构件的构建ID
    downloadType: 'single'
    artifactName: 'YourArtifactName'  # 替换为已发布的构件名称
    downloadPath: '$(System.DefaultWorkingDirectory)/DownloadedArtifacts'

验证

修改后重新运行Pipeline,即可正常下载指定构建的构件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 15:22:38