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

Azure DevOps管道DeleteFiles@1因目录被占用持续失败求助

Azure DevOps CI构建管道DeleteFiles@1步骤删除失败的解决方法

问题场景

在Azure DevOps经典CI构建管道中,最后一步执行DeleteFiles@1清理CI文件时持续失败,报错:

##[error]Error: Failed rmRF: Command failed: rd /s /q "c:\agent_work\173\s"

提示文件被其他进程占用,但此时仅剩余s目录,资源监视器未检测到进程占用该目录,且手动通过文件资源管理器可正常删除。已设置10次重试,每次均报相同错误。手动删除该目录后重试,又出现新错误:

##[warning]RetryHelper encountered exception, will retry (attempt #: 7 An error occurred trying to start process 'c:\agent\externals\node16\bin\node.exe' with working directory 'c:\agent_work\173\s'. The directory name is invalid.) afer 49000 ms

怀疑node.exe与删除命令存在目录访问冲突,或node.exe本身参与了删除操作。当前DeleteFiles@1步骤配置如下:

Source Folder: $(Agent.BuildDirectory)
Contents: *
Remove SourceFolder: yes
Remove files starting with a dot: yes

解决方法

  • 拆分删除操作,避免直接删除根目录
    不要直接将Source Folder设为$(Agent.BuildDirectory)并勾选Remove SourceFolder,改为分两步执行:

    1. 第一步DeleteFiles@1配置:
      Source Folder: $(Agent.BuildDirectory)\s
      Contents: *
      Remove SourceFolder: no
      Remove files starting with a dot: yes
      
    2. 第二步添加CmdLine@2步骤,执行命令删除空的s目录:
      if exist "$(Agent.BuildDirectory)\s" rd /s /q "$(Agent.BuildDirectory)\s"
      
  • 强制清理残留node进程
    在删除步骤前添加命令行步骤,终止所有关联的node.exe进程,消除潜在的后台占用:

    taskkill /f /im node.exe >nul 2>&1
    
  • 调整删除步骤的工作目录
    显式设置DeleteFiles@1的WorkingDirectory为$(Agent.BuildDirectory),避免node.exe重试时尝试在已删除的s目录启动。

  • 改用PowerShell命令替代DeleteFiles@1
    使用PowerShell的递归删除命令,增加重试逻辑确保目录被移除:

    Remove-Item -Path "$(Agent.BuildDirectory)\s" -Recurse -Force -ErrorAction SilentlyContinue
    do { Start-Sleep -Seconds 2 } while (Test-Path "$(Agent.BuildDirectory)\s")
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 19:28:13