2011-01-20 120 views
2

在TFS 2010構建定義窗口的「Process」下,有兩個必需的項目。他們是「構建配置」和「構建項目」。在項目建設,這將讓我輸入類似:TFS 2010 Build定義

$/TeamProject/Area1/Area2/* 

然而,這似乎並沒有做什麼,我的期望。生成失敗,因爲它正在尋找:

$/TeamProject/Area1/Area2/Sources/* 

我想通過這是要建立所有解決方案在這方面舉行。例如,我有:

$/TeamProject/Area1/Area2/Solution1/Solution1.sln 
$/TeamProject/Area1/Area2/Solution2/Solution2.sln 
$/TeamProject/Area1/Area2/Solution3/Solution3.sln 

還有很多比這更多的解決方案,這就是爲什麼我在尋找一種方式來建立在指定路徑下的所有解決方案遞歸。有沒有辦法在TFS 2010中做到這一點?

回答

0

FWIW, 我有「的配置打造」空白 並在「項目,以建立」我已經通過省略號按鈕添加我的解決方案

0

我會設置映射

$/TeamProject/Area1/Area2/Solution1/  
$/TeamProject/Area1/Area2/Solution2/  
$/TeamProject/Area1/Area2/Solution3/ 

然後在生成定義輸入三個項目建設

$/TeamProject/Area1/Area2/Solution1/Solution1.sln 
$/TeamProject/Area1/Area2/Solution2/Solution2.sln 
$/TeamProject/Area1/Area2/Solution3/Solution3.sln 

您可以將配置打造爲空白,或者我如果你想做一個特定的構建,你可以將它設置爲(例如)調試|混合平臺(檢查你的配置管理器...爲你正在構建的解決方案,看看有效)

或者,你可以只映射以下(取決於你有多少此文件夾中,如果你有解決方案4+,你不想觸發基礎上,在這個級別不這樣做)

$/TeamProject/Area1/Area2 

而且有一個包含Solution1,Solution2和Solution3的解決方案,然後構建它。

默認情況下,建立你的解決方法1被映射到

$/TeamProject/Area1/Area2 

在與即將工作目錄中生成代理看起來像:

$(SystemDrive)\Builds\$(BuildAgentId)\$(BuildDefinitionPath) 

你會用它結束了正在建立

C:\Builds\1\Solution1\Binaries 
C:\Builds\1\Solution1\Sources 
C:\Builds\1\Solution1\TestResults 

這就是爲什麼你要確保你的OutDir的等都是可以的rect而不是硬編碼!

如果您在構建時看看,您會看到構建代理填充Sources文件夾,並且它應該(如果配置正確)將所有輸出放入Binaries文件夾(然後將它們複製到下面配置的Drop文件夾在TFS中創建默認值

3

您可以修改流程模板,使用匹配文件(我現在沒有確切的命名)來展開它,添加一個參數,將您在構建定義中設置的信息傳遞給MachingFiles活力。然後傳遞到構建解決方案活動,而不是您在構建定義中輸入MatchingFiles活動找到的文件的參數。

現在在構建定義中添加一個虛擬解決方案,以便構建解決方案(不再使用它)。

有關定製構建過程模板的更多信息,請參閱blog post series on the build customization