从VSTS中排除文件/文件夹发布

时间:2015-12-02 11:45:15

标签: azure-devops azure-pipelines

我们正在TFS内部使用新的VSO / VSTS样式版本,从2015年1月1日开始。

在发布构建工件阶段,我们希望从根条2个子文件夹中复制所有文件/文件夹。

即:

$\somefilestopublish1\...
$\somefilestopublish2\...
$\somefilestoexclude1\...
$\somefilestoexclude2\...

目前我有**\*作为内容参数,显然会发布所有内容。我尝试按照Google搜索的建议添加;-:<exclude_pattern>,但这只是停止了所有输出并导致了一个空文件夹。

有没有办法使用minimatch表达式来排除文件夹,或者我需要交换显式选择要发布的文件夹。

5 个答案:

答案 0 :(得分:13)

Minimatch使用“!”排除给定的模式。您可以使用以下格式指定它:

!(somefilestoexclude1|somefilestoexclude2)

以下是示例: 使用!(bin | obj),“bin”文件夹和“WindowsFormsApplication1”文件夹下的“obj”文件夹不会复制到工件。 enter image description here

答案 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文件。