2013-03-01 37 views
3

我一直在閱讀關於構建一次,然後配置每個環境。例如,這裏有一些想法如何做到這一點:Build once and deploy to multiple environments with msdeploy & Visual Studio 2012使用構建服務器構建一次可行嗎?

我的問題是,這是如何與您的生成服務器一起工作?有沒有人啓動一個部署到多個環境的構建?我希望每個環境都有自己的構建定義和自己的規則/時間表。在那種情況下,一次構建真的有多可行?我覺得我失去了一些東西......

回答

3

我使用基於MSDeploy和Web Publishing Pipeline的構建管道,但它不是MSBuild腳本直接支持的方案。

我使用的基本前提是一個軟件包是在構建的第一個「階段」中構建的,然後部署到各種環境中,直到它開始生產。您的構建服務器如何處理交叉構建「工件」是您需要研究的內容。

另一個問題是將軟件包部署到發佈配置文件是not something that's currently supported。但是,您始終可以選擇從命令行部署軟件包(甚至將其上傳到可以通過IIS導入的管理員)。

這些資源(其中,免責聲明,包含指向自己的博客和代碼)應該有所幫助:

3

我做這一切的時候。 構建一次併爲每個環境重新配置。我不使用MSdeploy。我確實使用了xdt模板轉換,這些轉換在部署時與環境屬性相結合。構建會創建一個可以配置的包。

這消除了部署時對Visual Studio的需求。我可以啓動部署到多個環境。我也可以在部署時支持新的/已更改的環境。您可以使用msbuild,ctt工具http://ctt.codeplex.com/documentation 和令牌轉換進程(如msbuild擴展包中的detokenisation任務)輕鬆實現此目的。如果你構建了這個過程,你可以在一個CI工具(TFS但id爲Teamcity)以及手動/ cmdline/powershell中託管。

+0

+1爲你的例子和CTT(我不知道你可以得到它的獨立)。目前我正在尋找更多的內置方式來完成所有這些工作,但是如果我繼續打到死角,這可能是一個不錯的選擇。 – 2013-03-04 17:54:05

+0

請記住,MSDeploy包含與VS分開安裝的命令行。 VS的增加只是MSBuild腳本。 – 2013-03-05 06:14:50

+0

ctt也可讓您使用相同的方法來配置任何類型的具有配置文件的應用程序,而不僅僅是Web應用程序。 – 2013-03-05 07:40:47