【问题标题】:Stop windows service before CruiseControl.NET get latest在 CruiseControl.NET 获取最新版本之前停止 Windows 服务
【发布时间】:2010-07-06 21:36:37
【问题描述】:

我试图弄清楚如何在 CruiseControl.NET 项目获得最新版本之前运行一个停止 Windows 服务的 bat 文件,因为它会失败说文件正在使用(由正在运行的 Windows 服务。)我在最新的任务之前无法弄清楚如何运行任务,因为源代码控制块不是任务,它直接在项目节点下。

<project name="projectname" queue="queuename" queuePriority="1">
    <workingDirectory>C:\Build</workingDirectory>
    <category>companyname</category>
    <webURL>http://ip/ccnet/server/local/project/projectname/ViewProjectReport.aspx</webURL>
    <triggers>
      <intervalTrigger seconds="60" />
    </triggers>
    <modificationDelaySeconds>60</modificationDelaySeconds>
    &sc;
    <tasks>
      <msbuild>
        <executable>C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe</executable>
        <workingDirectory>C:\Build\Web\H4</workingDirectory>
        <projectFile>solution.sln</projectFile>
        <buildArgs>/v:quiet /noconlog /p:Configuration=Debug</buildArgs>
        <targets>Build</targets>
        <timeout>900</timeout>
        <logger>C:\Program Files\CruiseControl.NET\server\Rodemeyer.MsBuildToCCnet.dll</logger>
      </msbuild>
      <exec>
        <executable>deleteTestResults.bat</executable>
        <baseDirectory>C:\Build\Test\TestCases\H4Test</baseDirectory>
        <buildArgs></buildArgs>
        <buildTimeoutSeconds>30</buildTimeoutSeconds>
      </exec>
      <exec>
        <executable>C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\mstest.exe</executable>
        <baseDirectory>C:\Build\Test\TestCases\</baseDirectory>
        <buildArgs>/testcontainer:testproject\bin\debug\testproject.dll /runconfig:localtestrun.Testrunconfig /resultsfile:H4Test\testResults.trx</buildArgs>
        <buildTimeoutSeconds>900</buildTimeoutSeconds>
      </exec>
    </tasks>
    <publishers>
      <merge>
        <files>
          <file>C:\Build\Test\TestCases\testproject\testResults.trx</file>
        </files>
      </merge>
      <xmllogger logDir="C:\Program Files\CruiseControl.NET\Logs\companyname\projectname\" />
    </publishers>
  </project>

任何帮助将不胜感激,谢谢, 贾斯汀

【问题讨论】:

    标签: cruisecontrol.net


    【解决方案1】:

    你不能在 msbuild 任务之前添加一个新的 exec: 即

    <tasks>     
        <exec>
            <executable>StopMyServices.bat</executable>
            <baseDirectory>C:\Build\Test\TestCases\H4Test</baseDirectory>
            <buildArgs></buildArgs>
            <buildTimeoutSeconds>30</buildTimeoutSeconds>
        </exec>
        <msbuild>
            <executable>C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe</executable>
            <workingDirectory>C:\Build\Web\H4</workingDirectory>
            <projectFile>solution.sln</projectFile>
            <buildArgs>/v:quiet /noconlog /p:Configuration=Debug</buildArgs>
            <targets>Build</targets>
            <timeout>900</timeout>
            <logger>C:\Program Files\CruiseControl.NET\server\Rodemeyer.MsBuildToCCnet.dll</logger>
        </msbuild>
        <exec>
            <executable>deleteTestResults.bat</executable>
            <baseDirectory>C:\Build\Test\TestCases\H4Test</baseDirectory>
            <buildArgs></buildArgs>
            <buildTimeoutSeconds>30</buildTimeoutSeconds>
        </exec>
        <exec>
            <executable>C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\mstest.exe</executable>
            <baseDirectory>C:\Build\Test\TestCases\</baseDirectory>
            <buildArgs>/testcontainer:testproject\bin\debug\testproject.dll /runconfig:localtestrun.Testrunconfig /resultsfile:H4Test\testResults.trx</buildArgs>
            <buildTimeoutSeconds>900</buildTimeoutSeconds>
        </exec>
    </tasks>
    

    【讨论】:

    • Doh.. 我在想,当源代码管理被拉下时,它会尝试覆盖正在运行的 Windows 服务文件和错误,但实际上这些文件(exe 和 dll)不在源代码管理中无论如何,它们只是从构建中生成的,因此您的解决方案可以正常工作。我想多了,谢谢。
    猜你喜欢
    • 1970-01-01
    • 2013-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多