VSTS构建定义配置:Copy Files任务排除CS及PDB文件的匹配模式
解决VSTS Copy Files任务排除.cs和.pdb文件的匹配模式问题
别发愁啦,我来帮你搞定这个匹配规则的问题!在VSTS的Copy Files任务里,Contents字段的匹配逻辑是基于minimatch语法的,你之前试的几种模式没生效,主要是语法格式和规则顺序出了问题。
直接给你能用的正确配置,把下面这段内容复制到Contents字段里就行:
** !**/*.cs !**/*.pdb
给你拆解下这个规则的逻辑:
**:先匹配当前目录及所有子目录下的所有文件(这是基础,得先把所有文件纳入范围,排除规则才能生效)!**/*.cs:排除任意层级子目录下的所有.cs文件(**/表示不管多少层子目录,*.cs精准匹配C#源文件)!**/*.pdb:排除任意层级子目录下的所有.pdb调试符号文件
为啥你之前的模式没用?
你写的!*.cs只会排除当前根目录下的.cs文件,子目录里的根本不会被过滤;而**\!*.cs这种写法是错误的——minimatch语法里路径分隔符要用/,而且排除规则的感叹号必须放在模式最开头,才能被任务识别为排除指令。
另外要记住:Copy Files任务的匹配逻辑是先包含、后排除,所以一定要先写**包含所有文件,再写排除规则,不然排除指令会不生效哦。
内容的提问来源于stack exchange,提问作者Bovaz
相关产品推荐
相关产品推荐

