2011-09-05 53 views
0

我想通過添加使用數據庫項目部署數據庫的步驟來自定義默認的TFS構建過程。我遵循[這些步驟] [1],並且當數據庫名稱是InvokeProcess下該步驟的deploymanifest文件上的硬編碼時,DB部署工作。如何在deploymanifest上使數據庫名稱成爲參數?

c。將參數屬性設置爲「/ a:Deploy/dd +/dsp:Sql /manifest:DatabaseProjectName.deploymanifest」。您必須將DatabaseProjectName替換爲您要部署的數據庫項目的名稱。

我的問題是,我怎樣才能改變DatabaseProjectName一個變量,並且已將其動態分配所以這BuildProcessTemplate可以通過其他數據庫使用建立或如果該項目內TFS支?我嘗試使用SQLCmdVars中使用的$(DatabaseName)變量和項目屬性,但似乎沒有解決。

回答

2

首先,您可以通過修改定義模板以將DatabaseProjectName(和「TargetDatabaseName」,如果db的名稱將與參數不同)作爲參數,使DatabaseProjectName成爲您構建定義中的變量。您可以單擊Metadata屬性來公開屬性,以便您可以在每個構建定義中將其設置爲不同的名稱。看到這篇文章添加參數。 http://www.ewaldhofman.nl/post/2010/04/27/Customize-Team-Build-2010-e28093-Part-2-Add-arguments-and-variables.aspx

然後,將InvokeProcess活動中的參數用作字符串中的變量,如下所示。您可以通過包含/ p:TargetDatabase選項來覆蓋清單中的數據庫名稱。

/a:deploy /dd+ /dsp:sql /manifest:" & DatabaseProjectName & ".deploymanifest /p:TargetDatabase=" & TargetDatabaseName 
+0

太棒了!非常感謝Mike!這正是我所期待的!這是我可以檢查我的TFS待辦事項列表中的一個項目。1下降一百萬! :) – IPon6MT