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

Azure DevOps管道前置任务生成文件无法复制发布问题

问题根因

两个核心配置错误导致文件复制、发布流程失效:

  • 生成文件路径与复制任务扫描路径不匹配:Python脚本通过相对路径生成Excel文件时,PythonScript@0任务的默认执行工作目录为$(Build.SourcesDirectory)(管道拉取代码的根目录),生成的xlsx文件直接存放在源码根目录;但CopyFiles@2任务配置的复制规则为_buildOutput/**,仅匹配_buildOutput文件夹下的所有内容,完全扫描不到生成的Excel文件,因此无文件可复制。
  • 路径配置缺少显式约束:CopyFiles@2任务未显式配置源目录参数,且当前流程中没有提前创建_buildOutput目录的步骤,即便后续调整脚本写入该目录,也会因为目录不存在触发写入错误,进一步导致文件丢失。
修复方案

根据使用场景二选一即可:

  • 方案1(无需修改Python代码,快速修复):调整CopyFiles@2任务配置,显式指定源目录,同时把根目录下的xlsx文件加入复制匹配规则:
- task: CopyFiles@2
  inputs:
    SourceFolder: '$(Build.SourcesDirectory)'
    contents: |
      _buildOutput/**
      *.xlsx
    targetFolder: $(Build.ArtifactStagingDirectory)
  • 方案2(路径管理更规范,生产环境推荐):调整Python代码,先创建目标输出目录再将Excel写入_buildOutput路径,无需修改原有复制任务配置:
import os
def create_excel():
        ...
        # 提前创建输出目录,目录已存在时不报错
        os.makedirs("_buildOutput", exist_ok=True)
        # 将Excel文件写入指定输出目录
        return rn_df.to_excel(fr'_buildOutput/rn{rel_ver}.xlsx', sheet_name=f"RN {rel_ver}", index=False)
  • 辅助排查手段:如果调整后仍找不到文件,可以在复制任务前增加命令行任务,扫描所有xlsx文件的实际存放位置,根据实际路径调整配置即可:
- task: CmdLine@2
  inputs:
    script: |
      # Windows构建代理执行以下命令
      dir /s /b *.xlsx
      # Linux/macOS构建代理注释上面的命令,执行下面的命令
      # find $(Build.SourcesDirectory) -name "*.xlsx"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 22:24:12