2015-12-02 184 views
15

我們正在使用新的VSO/VSTS作風建設中TFS的前提下,2015年1更新截至昨日。排除文件/文件夾發佈

在發佈構建構件階段,我們希望所有的文件/文件夾從根杆2子文件夾複製。

即:

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

目前,我有**\*爲內容的說法,這顯然會公佈一切。我嘗試追加;-:<exclude_pattern>谷歌搜索建議,但只是停止所有輸出,並導致一個空的文件夾。

是否有使用minimatch表達式來排除的文件夾的方式或將我需要換明確選擇的文件夾,而不是發佈。

回答

12

Minimatch使用「!」排除給定的模式。你可以使用以下格式指定它:

!(somefilestoexclude1|somefilestoexclude2) 

以下是例子: 隨着(BIN | OBJ),「bin」文件夾,在「WindowsFormsApplication1」文件夾「目標文件」文件夾不會複製到神器! enter image description here

+1

你能舉個例子嗎?我一直在努力: 我有:'!(_ build | $ tf)/ *'但我仍然在應對$ tf和_build文件夾到我的drop中。 – themaninthesuitcase

+0

@themaninthesuitcase我只是創建一個示例,並在答案中添加屏幕截圖,請參閱它的細節。 –

+0

@ Eddie-MSFT這將如何工作以忽略某些文件類型。像.pdb和.xml一樣? – Schoof

1

!/ $ TF/**對我的作品。我選擇縮短,要!/ $ */**

http://www.globtester.com/幫助。 $符號不必轉義,儘管在msdn:https://msdn.microsoft.com/en-us/library/bb383819.aspx上有相互矛盾的指導。

+0

你不需要@POP。無論如何,他會發現有一個答案(我認爲它只能從評論中發揮作用)。 – Teepeemm

+0

@Teepeemm我打算添加評論,但缺乏聲望。 –

+0

@ piet.t我不遵循你的觀點。答案的重要部分是/!($ tf)/ **爲我工作。這兩個鏈接增加了(但不是必需的)答案。也就是說,事實證明,/!($ tf)/ **不包括根文件夾中的文件,所以我仍在尋找更好的minimatch模式。 –

0

這爲我工作的文件夾試試這個!** \ ***上傳對於 文件**!(Web.config文件)

上面的例子是排除的文件夾,並在同一個文件夾路徑可用的文件。

0

在TFS 2017年更新1,如果您使用的是複製文件的任務,要將所有文件從$(Build.SourcesDirectory)複製,但不包括在$ TF文件夾中我發現了什麼工作是如下。

在內容文本框中輸入以下兩行。

**\* 
!$tf\** 

This post on social.msdn.microsoft.com是什麼幫助我弄清楚了這一點。

0

假設你要收集所有的* .nupkg文件在您的解決方案(比如你構建過程中創建的),並將其複製到另一個文件夾,但你要排除你得到的那些通過包還原,你需要指定下列內容:

**\*.nupkg !packages\**

順序指定它們是非常重要的。將頂層包文件夾上的排除放置在頂部,將導致複製任務複製所有* .nupkg文件。