【问题标题】:CruiseControl.NET post-build actionsCruiseControl.NET 构建后操作
【发布时间】:2008-09-22 08:03:53
【问题描述】:

我们在 ASP.NET 应用程序上安装了 CC.NET。当我们构建项目时,ASP.NET 应用程序被预编译并复制到网络共享,服务器从该网络共享运行应用程序。

服务器与开发盒有点不同,我们的暂存环境中的下一个服务器差异更大。区别在于特定的配置文件等等——所以我想排除一些文件——或者在将预编译的应用程序复制到网络共享之前删除它们。

我的配置文件如下所示:

    <project name="Assembly.Web.project">
    <triggers>
        <intervalTrigger seconds="3600" />
    </triggers>
    <sourcecontrol type="svn">
        <trunkUrl>svn://svn-server/MyApp/Web/Trunk</trunkUrl>
        <workingDirectory>C:\build-server\Assembly\Web\TEST-HL</workingDirectory>
    <executable>C:\Program Files (x86)\SVN 1.5 bin\svn.exe</executable>
    <username>uid</username>
    <password>pwd</password>
    </sourcecontrol>
    <tasks>
        <msbuild>
          <executable>C:\Windows\Microsoft.NET\Framework64\v3.5\MSBuild.exe</executable>
          <workingDirectory>C:\build-server\Assembly\Web\TEST-HL</workingDirectory>
          <projectFile>C:\build-server\Assembly\Web\TEST-HL\Web\Web.sln</projectFile>
          <buildArgs>/noconsolelogger /p:Configuration=Debug /v:diag</buildArgs>
          <targets>Build</targets>
          <timeout>900</timeout>
          <logger>C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
        </msbuild>
    </tasks>
    <publishers>
        <buildpublisher>
             <sourceDir>C:\build-server\Assembly\Web\PrecompiledWeb</sourceDir>
             <publishDir>\\test-web01\Web</publishDir>
             <useLabelSubDirectory>false</useLabelSubDirectory>
             <alwaysPublish>false</alwaysPublish>
        </buildpublisher>           
    </publishers>
</project>

如您所见,我使用 buildPublisher 将预编译文件复制到网络共享。我在这里要做的是 1)在复制某些文件之前删除它们或 2)在复制这些文件后替换它们。

我不想让某些应用程序运行监视特定文件以进行更改,然后用其他文件替换这些文件。我希望某些事情要么由 CC.NET 完成,要么由 CC.NET 触发。

你能用 CC.NET 启动一个 .bat 文件吗?

【问题讨论】:

    标签: cruisecontrol.net


    【解决方案1】:

    我使用NAnt task 进行所有发布、部署、清理等操作。

    【讨论】:

    • 此链接不再有效。 NANT xml 标记在 CCNET 配置文件中的什么位置?我想不通...
    【解决方案2】:

    看看MSDEPLOYWeb Deployment Projects。有一个问题会提供more detail here

    【讨论】:

      【解决方案3】:

      你必须使用NAnt 来处理这些事情。 这是Task Reference of Nant..

      【讨论】:

        【解决方案4】:

        当然 CruiseControl.NET 可以运行批处理文件,只需使用 exec 任务。但是,更简单的答案可能就是让 MSBuild 为您完成任务。在后编译目标中添加几个步骤应该很简单。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-09-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-02-14
          相关资源
          最近更新 更多