2013-06-18 30 views
0

我使用teamcity將我們的Web應用程序部署到使用msbuildwebdeploy的多個服務器。使用web.config部署共享服務器控件轉換

我有每個客戶/環境組合的配置 - 例如:

Internal-Dev 
Customer1-Test 
Customer1-Pilot 
Customer1-Live 
Customer2-Test 
Customer2-Pilot 
Customer2-Live 

我只需要這些配置使部署過程中可以使用的web.config轉換來設置相應的連接字符串和其他設置安裝。

我的問題是我有一個共享的Web服務器控件項目,它只需要兩個配置 - debugrelease - 但我需要將所有上述配置複製到此項目中才能使它們工作。如果我從共享項目中刪除Customer2-Pilot,我無法部署到客戶2的試驗服務器,因爲它正在爲不存在的共享項目尋找Customer2-Pilot配置。

目前,我複製應用程序的配置名稱到共享項目但這是不切實際的,因爲我們有幾個應用程序每次去不同的客戶,使共享的項目可以得到數十它們或Release所有副本Debug

配置

我希望能夠配置構建系統,以便我可以說Web應用程序項目的Internal-Dev配置使用共享項目的Debug配置,並且所有其他配置使用共享項目的Release配置。這可以從IDE內使用配置管理器,它可以將解決方案配置與個別項目配置聯繫起來,但我不知道如何從teamcity內做到這一點。

我現在TeamCity的配置是使用MSBuild亞軍與Web應用程序的項目文件作爲構建文件的路徑,並將其設置已建成之後將它部署到與正確的配置相關的服務器配置參數。共享項目位於Web應用程序存儲庫的子存儲庫中,因此可以自動獲取並構建它。

有什麼辦法可以改變這個設置來獲得我想要的嗎?我是否需要將構建文件路徑更改爲解決方案而不是項目,以便我可以使用配置管理器設置來配置它?

回答

0

事實證明,這與將構建文件路徑參數更改爲解決方案文件而非項目文件一樣簡單。這意味着您可以指定解決方案配置,而不是項目配置。解決方案配置在配置管理器中進行管理,您可以在解決方案配置中指定每個項目的配置,以便一切正常。

我有兩個需要發佈的項目(一個Web應用程序和一個WCF服務應用程序),他們依賴於其他五個類庫項目。我已經設置好了,以便類庫項目使用調試版本構建,並且具有需要轉換的配置文件的兩個項目每個系統都有一個配置。

有一點需要注意。在舊的設置中,我必須有兩個構建步驟 - 一個構建和部署Web應用程序,另一個構建和部署WCF服務應用程序。當我使用解決方案文件作爲構建文件時,我不再需要兩個步驟,因爲它們都是解決方案的一部分,因此它們都已構建和部署。

相關問題