我们正在TFS内部使用新的VSO / VSTS样式版本,从2015年1月1日开始。
在发布构建工件阶段,我们希望从根条2个子文件夹中复制所有文件/文件夹。
即:
$\somefilestopublish1\...
$\somefilestopublish2\...
$\somefilestoexclude1\...
$\somefilestoexclude2\...
目前我有**\*
作为内容参数,显然会发布所有内容。我尝试按照Google搜索的建议添加;-:<exclude_pattern>
,但这只是停止了所有输出并导致了一个空文件夹。
有没有办法使用minimatch表达式来排除文件夹,或者我需要交换显式选择要发布的文件夹。
答案 0 :(得分:13)
Minimatch使用“!”排除给定的模式。您可以使用以下格式指定它:
!(somefilestoexclude1|somefilestoexclude2)
以下是示例: 使用!(bin | obj),“bin”文件夹和“WindowsFormsApplication1”文件夹下的“obj”文件夹不会复制到工件。
答案 1 :(得分:1)
!/ $ tf / **适合我。我选择将其缩短为!/ $ * / **
http://www.globtester.com/帮了忙。尽管在msdn:https://msdn.microsoft.com/en-us/library/bb383819.aspx上有相互矛盾的指导,但$符号不必转义。
答案 2 :(得分:0)
这对我来说是文件夹试试这个!** \上传*** 对于文件**!(Web.config)
以上示例用于排除同一文件夹路径中可用的文件夹和文件。
答案 3 :(得分:0)
在TFS 2017 Update 1上,如果您正在使用“复制文件”任务,并且要从$(Build.SourcesDirectory)复制所有文件但排除$ tf文件夹,我发现的工作如下:
在“内容”文本框中输入以下两行。
**\*
!$tf\**
This post on social.msdn.microsoft.com帮我解决了这个问题。
答案 4 :(得分:0)
假设您要收集解决方案中的所有 * .nupkg 文件(例如您在构建期间创建的文件)并将其复制到另一个文件夹,但您想要 排除 您通过包还原获得的那些,您需要指定以下内容:
**\*.nupkg
!packages\**
按此顺序指定它们非常重要。将排除项置于顶层的packages文件夹中将导致复制任务复制所有* .nupkg文件。