2009-08-19 152 views

回答

0

我通常使用Build Publisher任務來部署文件到遠程服務器。您也可以使用xcopy命令編寫腳本來部署。

0

您也可以使用Web Deployment Projects來解決這個問題。在WDP中,您可以使用ExcludeFromBuild項目來排除這些文件。欲瞭解更多信息,請參閱http://msdn.microsoft.com/en-us/library/aa479568.aspx

這將處理該網站以供您預先編譯,然後發佈到另一個開發服務器,這取決於您現在部署的方式。如果你複製到網絡共享或FTP,那麼你也可以使用MSBuild來完成這些任務。我不熟悉以前的答案提到的Build Publisher。

+0

,如果你有什麼想要發佈您的Web應用程序(mvc),並且您沒有在服務器上安裝Visual Studio,您將如何構建和發佈? – Haroon 2011-07-19 18:40:39

0

我發現this blog非常有用。實際上,您可以將ccnet.config文件指向您在項目目錄中創建的MSBuild.xml文件。在MSBuild.xml文件中,您將創建一個目標,該目標將使用_CopyWebApplication選項來構建和發佈Web應用程序

2

要將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=&quot;${tmpdir}&quot;"/> 
     <arg value="-dest:dirPath=&quot;${deploy.dir}&quot;,computerName=http://${servername}/msdeploymentservice/"/> 
    </exec> 

通過使用Web部署,你可以很容易做到的網站內容,刪除的東西,不應該存在,以及一個完整的同步。它也有其他的選擇,做這樣的事情忽略某些目錄和發出指令回收應用程序池,等

2

我對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>