TFS丢弃,使用minimatch模式排除obj文件夹

Rod*_*ers 12 tfs tfsbuild minimatch tfs-2015

我在本地设置了TFS 2015,我在上一个构建步骤Publish Build Artifacts上遇到了问题.出于某种原因,构建代理似乎正在存档旧的二进制文件,我留下了一个巨大的文件路径:

E:\TFSBuildAgent\_work\1a4e9e55\workspace\application\Development\project\WCF\WCF\obj\Debug\Package\Archive\Content\E_C\TFSBuildAgent\_work\1a4e9e55\workspace\application\Development\project\WCF\WCF\obj\Debug\Package\PackageTmp\bin
Run Code Online (Sandbox Code Playgroud)

我正在使用示例minimatch模式复制文件以开始:

**\bin
Run Code Online (Sandbox Code Playgroud)

我现在只是测试,所以这不是一个永久的解决方案,但我如何复制bin文件夹中的所有二进制文件,而不是obj的后代?

从研究我认为这应该工作,但它没有(它不匹配任何东西):

**!(obj)**\bin
Run Code Online (Sandbox Code Playgroud)

我正在使用www.globtester.com进行测试.有什么建议?

另外,我将在稍后讨论归档问题,但如果有人对此有任何指示,请随时发表评论.谢谢

jes*_*ing 13

在VSTS中,内置于SDK的URL有两种模式匹配.现在大多数任务都使用Matt的答案中描述Minimatch模式.但是,有些人使用1.x Agent的Powershell SDK使用的模式.顺便提一下,2.x Agent的Powershell SDK中仍然可以使用该格式.

这意味着有4种任务:

  • 1.x代理 - Powershell SDK
  • 2.x代理 - 节点SDK
  • 2.x代理 - Powershell 1向后兼容性
  • 2.x代理 - Powershell 3 SDK - 使用 find-files
  • 2.x代理 - Powershell 3 SDK - 使用 find-match

粗体的不是Minimatch,而是VSTS-Task-SDK find-files方法中记录的格式.

原始问题发布于2015年,此时2.x代理尚未出现.在这种情况下,模式很可能是:

 **\bin\$(BuildConfiguration)\**\*;-:**\obj\**
Run Code Online (Sandbox Code Playgroud)

-:不包括在它前面的那些项目.