如何使用CruiseControl.NET部署/發佈Web應用程序& MSBuild?我是CCNET的新手,我可以從SVN獲得最新的源代碼,使用MSBuild 3.5獲得最新的源代碼。如何讓網站發佈到另一個(開發)服務器? 感謝任何指針/例子。如何使用CruiseControl.NET&MSBuild部署/發佈Web應用程序?
乾杯, 〜CK
如何使用CruiseControl.NET部署/發佈Web應用程序& MSBuild?我是CCNET的新手,我可以從SVN獲得最新的源代碼,使用MSBuild 3.5獲得最新的源代碼。如何讓網站發佈到另一個(開發)服務器? 感謝任何指針/例子。如何使用CruiseControl.NET&MSBuild部署/發佈Web應用程序?
乾杯, 〜CK
我通常使用Build Publisher任務來部署文件到遠程服務器。您也可以使用xcopy命令編寫腳本來部署。
您也可以使用Web Deployment Projects來解決這個問題。在WDP中,您可以使用ExcludeFromBuild項目來排除這些文件。欲瞭解更多信息,請參閱http://msdn.microsoft.com/en-us/library/aa479568.aspx。
這將處理該網站以供您預先編譯,然後發佈到另一個開發服務器,這取決於您現在部署的方式。如果你複製到網絡共享或FTP,那麼你也可以使用MSBuild來完成這些任務。我不熟悉以前的答案提到的Build Publisher。
我發現this blog非常有用。實際上,您可以將ccnet.config文件指向您在項目目錄中創建的MSBuild.xml文件。在MSBuild.xml文件中,您將創建一個目標,該目標將使用_CopyWebApplication選項來構建和發佈Web應用程序
要將CruiseControl.NET中的CI服務器上構建的網站發佈到開發服務器,我使用Microsoft Web Deploy 。它要求您在任何將作爲部署目標的服務器上安裝部署服務。然後,您可以簡單地向運行msdeploy.exe的構建過程添加執行步驟。下面是我在南特用一個例子:
<exec program="C:\Program Files\IIS\Microsoft Web Deploy V2\msdeploy.exe">
<arg value="-verb:sync"/>
<arg value="-source:dirPath="${tmpdir}""/>
<arg value="-dest:dirPath="${deploy.dir}",computerName=http://${servername}/msdeploymentservice/"/>
</exec>
通過使用Web部署,你可以很容易做到的網站內容,刪除的東西,不應該存在,以及一個完整的同步。它也有其他的選擇,做這樣的事情忽略某些目錄和發出指令回收應用程序池,等
我對CCNET與的Web.config改造解決方案:
<tasks>
<msbuild>
<executable>C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe</executable>
<workingDirectory>E:\VersionesCC\Trunk_4\SBatz\Gertakariak_Orokorrak\GertakariakMS\Web</workingDirectory>
<projectFile>GertakariakMSWeb2.vbproj</projectFile>
<targets>Build</targets>
<timeout>600</timeout>
<logger>C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MSBuild.dll</logger>
<buildArgs>
/noconsolelogger /p:Configuration=Release /v:diag
/p:DeployOnBuild=true
/p:AutoParameterizationWebConfigConnectionStrings=false
/p:DeployTarget=Package
/p:_PackageTempDir=E:\Aplicaciones\GertakariakMS2\Web
</buildArgs>
</msbuild>
</tasks>
,如果你有什麼想要發佈您的Web應用程序(mvc),並且您沒有在服務器上安裝Visual Studio,您將如何構建和發佈? – Haroon 2011-07-19 18:40:39