DownloadPipelineArtifact@2下载丢失文件夹结构问题咨询
问题分析与解决
核心原因
你遇到的sea文件夹丢失、文件被扁平化处理的问题,本质是旧式构建工件发布任务(PublishBuildArtifacts@1)与新式Pipeline工件下载任务(DownloadPipelineArtifact@2)的兼容性差异:
- PublishBuildArtifacts@1是Azure DevOps早期的构建工件发布方式,采用传统文件系统存储格式。
- DownloadPipelineArtifact@2主要为新式Pipeline Artifacts(由PublishPipelineArtifact@1发布)设计,虽兼容下载旧式工件,但在部分文件夹结构下会出现解析偏差,导致子文件夹层级被忽略。
另外注意:你的发布任务配置中ArtifactName设为animal_rootFolder,但下载时指定的artifactName是animal,若这不是笔误,名称不匹配也可能加剧异常解析(不过你提到其他工件正常,大概率兼容性问题为主)。
解决方案
方案1:统一使用新式Pipeline工件任务(推荐)
将发布任务替换为PublishPipelineArtifact@1,与DownloadPipelineArtifact@2匹配,确保文件夹结构完整保留:
- task: PublishPipelineArtifact@1 displayName: Publish Pipeline Artifact - config inputs: targetPath: animal_rootFolder artifact: animal # 与下载任务的artifactName保持一致
方案2:继续使用旧式任务组合
若需保留PublishBuildArtifacts@1发布,下载时改用对应的DownloadBuildArtifact@1任务,保证结构解析逻辑一致:
- task: DownloadBuildArtifact@1 displayName: 'Download Build Artifact' inputs: buildType: specific project: '0000000-0000-0000-0000-000000000' definition: 12345 artifactName: animal downloadPath: drop
额外检查项
确认发布路径animal_rootFolder内部结构是否符合预期:确保animal_rootFolder下确实存在animal\land和animal\sea层级,而非直接将land、sea放在animal_rootFolder根目录——若路径本身有误,也会导致下载后结构异常。
内容的提问来源于stack exchange,提问作者Akash
相关产品推荐
相关产品推荐

