2009-08-19 121 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>