Azure DevOps Copy Files任务使用**模式返回0匹配但源目录存在文件
问题根因
Azure DevOps的Copy Files任务使用minimatch库实现文件匹配逻辑,[、]属于该库的预留通配符,用于匹配指定字符范围内的单个字符。从日志可以看到你的源文件夹路径包含字面量[DEV],系统生成最终匹配规则C:\agent\_work\r3\a\_[DEV] Build Broker library and service\drop\**时,将[DEV]识别为通配符规则而非字面量字符,无法匹配到实际存在的文件路径,因此虽然检索到源路径下有81个文件,但最终匹配结果为0。
修复方案
- 优先推荐修改构建流水线的名称,删除名称中的方括号字符,从根源避免路径出现通配符类特殊字符,修改完成后重新运行构建、发布流程即可正常匹配。
- 若必须保留带方括号的流水线名称,可以在配置Copy Files任务的源文件夹时,使用系统预定义变量替代显式的完整路径,例如直接填写
$(Build.ArtifactStagingDirectory)\drop作为源文件夹,避免路径中特殊字符被识别为通配符。 - 临时验证方案:可以在Copy Files任务前新增一个命令行任务,执行
dir "C:\agent\_work\r3\a\_[DEV] Build Broker library and service\drop",确认源路径下文件确实存在,排除权限类异常的可能性。
内容的提问来源于stack exchange,提问作者Actimele
相关产品推荐
相关产品推荐

