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

如何在Azure DevOps YAML管道中使用含点的隐藏文件夹路径?

Azure DevOps CopyFiles@2 任务访问隐藏目录(.azure)的解决方法

问题说明

使用CopyFiles@2任务时,若配置SourceFolder: '.azure/ARMTemplates/',会触发以下路径未找到错误:

##[error]Error: Not found SourceFolder: /home/vsts/work/1/s/.azure/ARMTemplates/

而去掉路径开头的点,改用azure/ARMTemplates/则可正常运行。这并非Linux隐藏目录本身的限制,而是路径解析或任务配置细节导致的问题。

解决方法

  • 使用预定义环境变量拼接完整路径
    利用ADO的$(Build.SourcesDirectory)环境变量指定绝对路径,避免相对路径的解析歧义:

    - task: CopyFiles@2
      inputs:
        SourceFolder: '$(Build.SourcesDirectory)/.azure/ARMTemplates/'
        TargetFolder: '$(Build.ArtifactStagingDirectory)'
    
  • 确认目录已提交至仓库
    检查项目的.gitignore文件,确保.azure/ARMTemplates/未被添加忽略规则。若目录被Git忽略,ADO代理拉取代码时不会同步该目录,自然会触发路径不存在错误。

  • 提前验证路径存在性
    在CopyFiles任务前添加Bash脚本,确认隐藏目录存在并输出详情,便于排查:

    - script: |
        echo "Checking .azure directory structure:"
        ls -la $(Build.SourcesDirectory)/.azure/
      displayName: 'Verify hidden directory exists'
    
  • 调整路径写法
    去掉路径末尾的斜杠,或用双引号包裹路径,避免任务解析路径时出现异常:

    # 去掉末尾斜杠
    - task: CopyFiles@2
      inputs:
        SourceFolder: '.azure/ARMTemplates'
        TargetFolder: '$(Build.ArtifactStagingDirectory)'
    

    或

    # 用双引号包裹路径
    - task: CopyFiles@2
      inputs:
        SourceFolder: ".azure/ARMTemplates/"
        TargetFolder: '$(Build.ArtifactStagingDirectory)'
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 19:04:59