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

Azure DevOps发布失败:同一脚本后期提示文件不存在

问题分析与解决方案

核心结论

确实存在代理工作区文件被清理的可能性,结合你使用容器托管Azure DevOps代理的环境,主要原因和解决办法如下:

可能的原因

  1. 容器代理的工作区自动清理机制
    容器化的Azure DevOps代理默认会对工作区进行生命周期管理,当作业运行时长超过代理内置的缓存保留阈值时,即使你延长了作业超时时间,代理仍可能自动清理克隆的仓库文件。此外,如果容器因资源占用过高触发重启,也会导致工作区文件丢失。

  2. 长时步骤引发的工作区异常
    那个耗时1.5小时的安装步骤可能占用大量磁盘资源,或意外修改了工作目录的权限/结构,导致后续脚本文件无法被识别(比如磁盘空间不足被系统回收,或权限变更导致无法访问)。

解决方案

  • 方案一:重新同步仓库文件
    在耗时1.5小时的安装步骤之后,添加一个checkout步骤重新拉取仓库内容,确保脚本文件存在:

    - checkout: self
      fetchDepth: 1
      path: 's' # 与之前的工作区路径保持一致,对应你报错中的C:\azp\agent_work\6\s
    
  • 方案二:将脚本迁移至持久化目录
    在作业初始化阶段,把需要反复调用的脚本复制到容器代理的持久化存储目录(需提前配置代理的持久化卷),后续步骤从该目录调用脚本:

    # 作业初始化步骤
    Copy-Item -Path "$(System.DefaultWorkingDirectory)\scripts\start_stop-virtualmachine.ps1" -Destination "C:\persistent-scripts\" -Force
    

    后续调用脚本时使用路径C:\persistent-scripts\start_stop-virtualmachine.ps1

  • 方案三:调整容器代理配置

    • 检查容器代理的环境变量(如AGENT_WORKSPACE_CLEANUP),确认是否启用了自动清理,若有则调整清理阈值或临时关闭该配置。
    • 确认容器代理分配的磁盘空间足够,避免因磁盘满导致文件被系统自动清理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 13:32:42