2

我们正在使用 TFS 2017 和 Copy File 构建步骤将构建结果的特定文件复制到另一个目录。具体来说,我们只需要复制 *.dll 和 *.exe,而不需要复制 *.Tests.dll 或 *.resources.dll。

构建步骤支持 minimatch 模式来过滤文件,但我无法让它同时应用这两个过滤器。

该模式如下所示:

bin\**\?(*.exe|*.dll)
bin\**\!(*.Tests.dll|*.resources.dll)

文件夹内容例如是:

bin\Yes.dll
bin\Yes.exe
bin\No.Tests.dll
bin\No\Some.resources.dll

似乎这些模式是按顺序应用的,所以它们都是单独工作的,但不是一个接一个。

我尝试了类似的东西

bin\**\?(*.exe|*.dll)!(*.Tests.dll|*.resources.dll)

但这也不起作用,也没有过滤任何内容。我可以以某种方式将它们组合成一个过滤器吗?文档不涵盖这种情况。

4

1 回答 1

3

好吧,看来您实际上可以将表达式直接放在一个之后,过滤器必须更严格。这有效,但我仍然不知道为什么:

bin\**\!(*.Tests.dll|*.resources.dll|*.pdb|*.xml|*.manifest)?(*.exe|*.dll)
于 2017-06-14T08:21:14.487 回答