如何使用CruiseControl.NET& amp;部署/发布Web应用程序的MSBuild?我是CCNET的新手,我能够从SVN获取最新的源代码并使用MSBuild 3.5获取Build。如何让网站发布到另一个(开发)服务器? 感谢您的任何指示/示例。
干杯, 〜CK
答案 0 :(得分:2)
为了在CruiseControl.NET中的CI服务器上构建网站后将其发布到开发服务器,我使用Microsoft Web Deploy。它要求您在将成为部署目标的任何服务器上安装部署服务。然后,您只需向运行msdeploy.exe的构建过程添加执行步骤即可。这是我在NAnt中使用的一个例子:
<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 Deploy,您可以轻松地完成网站内容的同步,从而删除不应存在的内容。它还有其他选项可以执行诸如忽略某些目录和发出命令来回收应用程序池等等。
答案 1 :(得分:2)
使用 Web.config转换 CCNET 的解决方案:
<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>
答案 2 :(得分:0)
我通常使用Build Publisher任务将文件部署到远程服务器上。您也可以使用xcopy命令编写脚本以进行部署。
答案 3 :(得分:0)
您也可以使用Web Deployment Projects来帮助解决此问题。在WDP中,您可以使用ExcludeFromBuild项来排除这些文件。有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/aa479568.aspx。
这将处理网站以便为您预先编译然后发布到另一个开发服务器,这取决于您现在的部署方式。如果您复制到网络共享或ftp,那么您也可以使用MSBuild。我不熟悉上一个答案提到的Build Publisher。
答案 4 :(得分:0)
我发现this blog非常有用。实质上,您将ccnet.config文件指向您在项目目录中创建的MSBuild.xml文件。在MSBuild.xml文件中,您将创建一个目标,该目标将使用_CopyWebApplication选项构建和发布Web应用程序