我知道有很多像這樣的問題,但迄今爲止我還沒有找到一個好的解決方案。我見過的最好的解決方案是自制的,但在實施自定義工具之前,我想聽聽你的看法。所以我們去:使用不同的app.config設置自動部署到許多服務器?
我有一個.NET解決方案與幾個Web應用程序和一些Windows服務。我想將這些應用程序部署到10-20個不同的服務器上 - 但每個服務器上的app/web.config文件可能有不同的值。
微軟對這個問題的回答是在開發機器本地有10-20個不同的web.config文件,然後使用配置管理器來選擇正確的。但這還不夠好,因爲開發人員不瞭解生產服務器設置,他們也不應該這樣做!
理想的解決方案是包含某種類型的「部署模型」,其中生產服務器及其設置已定義,並且可以與某些部署腳本(可能爲Powershell
)一起用作構建中的一個步驟服務器(我正在使用TeamCity
)。這可以通過在將解決方案複製到遠程服務器之前替換配置設置來完成。但這是一項繁瑣耗時的任務。
另一種解決方案可能是使用「configSource」指向一個固定名稱的文件夾,但這裏的問題是配置文件的某些部分(如serviceModel)不能與configSource一起使用。
所以我還沒有找到最好的答案。有任何想法嗎?
什麼(其他)工具,你起訴?新的軟件包管道? – 2011-12-20 11:31:37
那麼我一直在使用的一些工具是:VS2010 - > SVN - > MSBuild - > TeamCity - >用於部署的自定義PS腳本。因爲我有Web應用程序和Windows服務,所以我沒有使用WebDeploy。 – lasseschou 2011-12-20 12:04:19
查看InRelease,它與TFS的整合比TeamC更好,但可能仍然可以用來解決您的問題(我是該產品的開發者):http://inrelease.incyclesoftware.com – joerage 2011-12-20 16:09:53