从 VSTS 发布中排除 files/folders

Excluding files/folders from VSTS publish

从昨天开始,我们正在本地 TFS 中使用新的 VSO/VSTS 样式构建,2015 Update 1。

在发布构建工件阶段,我们要从根栏 2 个子文件夹中复制所有 files/folders。

即:

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

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

有没有办法使用最小匹配表达式来排除文件夹,或者我是否需要切换为显式选择要发布的文件夹。

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

!(somefilestoexclude1|somefilestoexclude2)

示例如下: 使用 !(bin|obj),"bin" 文件夹和 "WindowsFormsApplication1" 文件夹下的 "obj" 文件夹不会复制到工件。

!/$tf/** 对我有用。我选择将其缩短为 !/$*/**

http://www.globtester.com/ helped. The $ symbol doesn't have to be escaped despite conflicting guidance on msdn: https://msdn.microsoft.com/en-us/library/bb383819.aspx.

这对我适用于文件夹试试这个!**\Uploads*** 对于文件 **!(Web.config)

以上示例用于排除同一文件夹路径中可用的文件夹和文件。

在 TFS 2017 Update 1 上,如果您正在使用“复制文件”任务并且想要从 $(Build.SourcesDirectory) 复制所有文件但排除 $tf 文件夹,我发现可以使用以下内容。

在内容文本框中输入以下两行。

**\*
!$tf\**

This post on social.msdn.microsoft.com 帮助我解决了这个问题。

假设您想收集解决方案中的所有 *.nupkg 文件(例如您在构建过程中创建的文件)并将它们复制到另一个文件夹,但您想要exclude你通过包恢复得到的,需要指定如下:

**\*.nupkg !packages\**

按此顺序指定它们很重要。将排除项放在顶部的包文件夹中,将导致复制任务复制所有 *.nupkg 文件。