我有一個ASP .Net MVC應用程序,具有4種不同的發佈配置文件:dev,test,demo和prod。如何管理TFS中的很多類似配置
這些發佈配置文件是使用相同的兩個步驟構建的:NuGet恢復,然後是MSBuild。然後,它們被部署到許多不同的服務器上:幾臺dev服務器(每個團隊一臺服務器),一臺測試服務器,一臺演示服務器和多臺生產服務器。
msbuild /p:Configuration="$(Configuration)"
/p:PlatformTarget="any cpu"
/p:DeployOnBuild="True"
/p:DeployTarget="MsDeployPublish"
/p:MSDeployServiceURL="$(MSDeployServiceURL)"
/p:DeployIISAppPath="portal"
/p:CreatePackageOnPublish="False"
/p:MsDeployPublishMethod="WMSVC"
/p:AllowUntrustedCertificate="True"
/p:UserName="Deploy_User_For_TFS"
/p:Password="[email protected]"
/p:AutoParameterizationWebConfigConnectionStrings=False
/p:ExcludeFilesFromDeployment="Cache"
目前,我有4個TFS構建配置(一個爲每個發佈配置文件),並在那裏我有所有MSDeployServiceURL參數的可能值的文件。
有兩個問題,這種方法:
- 當我們不得不增加一個新的參數
AutoParameterizationWebConfigConnectionStrings
我們不得不改變它在4處而不是一個。 - 我們必須有一個共享文件作爲參數的來源。理解哪些價值應該被複制並且人們經常犯錯誤並不容易。
所以我有兩個問題:
- 有沒有辦法有一個通用模板,在那裏我可以只指定我的參數配置和可能的MSDeployServiceURL的名單,並擁有一切保持原樣?有這樣的模板應該解決問題#1。
- 有沒有辦法定義下拉式變量,其中值不能由用戶鍵入,但應該從預定義的值列表中選擇?
您是否通過Jacob的回答解決了這個問題?它解決了你的問題,你可以[接受它作爲一個答案](https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work),這可以有益於其他社區會員閱讀此主題。 –
我們嘗試過了,它比我們之前所做的更不方便:舊的配置很難理解和維護,但**易於使用**。並且提出的配置「看起來不錯」,但是在實踐中,爲了發佈它而構建一些東西很麻煩。 – DarkWalker