如何使用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