我使用teamcity
將我們的Web應用程序部署到使用msbuild
和webdeploy
的多個服務器。使用web.config部署共享服務器控件轉換
我有每個客戶/環境組合的配置 - 例如:
Internal-Dev
Customer1-Test
Customer1-Pilot
Customer1-Live
Customer2-Test
Customer2-Pilot
Customer2-Live
我只需要這些配置使部署過程中可以使用的web.config轉換來設置相應的連接字符串和其他設置安裝。
我的問題是我有一個共享的Web服務器控件項目,它只需要兩個配置 - debug
和release
- 但我需要將所有上述配置複製到此項目中才能使它們工作。如果我從共享項目中刪除Customer2-Pilot
,我無法部署到客戶2的試驗服務器,因爲它正在爲不存在的共享項目尋找Customer2-Pilot
配置。
目前,我複製應用程序的配置名稱到共享項目但這是不切實際的,因爲我們有幾個應用程序每次去不同的客戶,使共享的項目可以得到數十它們或Release
所有副本Debug
我希望能夠配置構建系統,以便我可以說Web應用程序項目的Internal-Dev
配置使用共享項目的Debug
配置,並且所有其他配置使用共享項目的Release
配置。這可以從IDE內使用配置管理器,它可以將解決方案配置與個別項目配置聯繫起來,但我不知道如何從teamcity
內做到這一點。
我現在TeamCity的配置是使用MSBuild
亞軍與Web應用程序的項目文件作爲構建文件的路徑,並將其設置已建成之後將它部署到與正確的配置相關的服務器配置參數。共享項目位於Web應用程序存儲庫的子存儲庫中,因此可以自動獲取並構建它。
有什麼辦法可以改變這個設置來獲得我想要的嗎?我是否需要將構建文件路徑更改爲解決方案而不是項目,以便我可以使用配置管理器設置來配置它?