我们正在使用TFS 2017和复制文件构建步骤将构建结果的特定文件复制到另一个目录。具体来说,我们只想复制* .dll和* .exe,但没有* .Tests.dll或* .resources.dll。
构建步骤支持使用minimatch模式来过滤文件,但我无法应用它来应用BOTH过滤器。
模式如下:
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)
但是,这既不起作用也没有过滤掉任何东西。我能以某种方式将这些组合成一个过滤器吗? docs不承保此案。
答案 0 :(得分:0)
好吧,似乎你实际上可以直接把表达式放在另一个之后,过滤器必须更加严格。这有效,但我仍然不知道为什么:
bin\**\!(*.Tests.dll|*.resources.dll|*.pdb|*.xml|*.manifest)?(*.exe|*.dll)