R – Cruise control merging

cruisecontrol.net

I had successfully extracted the compilation log present in my IDE into some one xml file very well. So in order to merge it I had mentioned in my ccnet.config file inside the publisher task using the <merge>
section.

But when I force my build, I am able to get the output.xml file correctly but an
error is thrown in ccnet.config window that it is unable to merge as this file is currently used by some other process.
Please see below:

[VSAT:ERROR] Publisher threw
exception:
ThoughtWorks.CruiseControl.Core.CruiseC
ontrolException: Unable to read the
contents of the file: C:
\ThreePartition\outp ut.xml —>
System.IO.IOException: The process
cannot access the file 'C:\ThreeP
artition\output.xml' because it is
being used by another process.

Can you suggest any method by which merging can be done successfully?
I have pasted the whole ccnet.config file below.

                <project name="VSAT">
                <sourcecontrol type="filtered">
                 <sourceControlProvider type="filesystem">
                 <repositoryRoot>C:\ThreePartition</repositoryRoot>
                 <autoGetSource>true</autoGetSource>
                  <ignoreMissingRoot>false</ignoreMissingRoot>
                 </sourceControlProvider>
                <exclusionFilters>
                 <pathFilter>
                <pattern>C:\ThreePartition\wrSbc750gx_ThreePartition\**</pattern>
                </pathFilter>
                <pathFilter>
               <pattern>C:\ThreePartition\*.txt</pattern>
                </pathFilter>
                <pathFilter>
               <pattern>C:\ThreePartition\*.xml</pattern>
                </pathFilter>
            </exclusionFilters>
           </sourcecontrol>
          <triggers>
           <intervalTrigger name="continuous" seconds="240"
            buildCondition="IfModificationExists" />
         </triggers>
        <tasks>
        <nant>
       <executable>C:\Nant-0.85\bin\NAnt.exe</executable>
       <buildFile>nant.build</buildFile>
       </nant>
        </tasks>
       <publishers>
      <merge>
        <files>
           <file>C:\ThreePartition\output.xml</file>

          </files>
        </merge>
       <xmllogger logDir="C:\Program Files\CruiseControl.NET\server\DF2.0-CI
       \Logfiles" />

      <email from="BuildAdmin@server.com"
      mailhost="smtp.servermail.com" includeDetails="TRUE">
   <users>
     user name="Maddy" group="buildmaster"
     address="Mymail@server.com"/>
    </users>
 <groups>
 <group name="buildmaster" notification="always"/>
 <group name="developers" notification="change"/>
 </groups>
 </email>
 </publishers>
 </project>
 </cruisecontrol>

I had just placed the publishers section below for the better view

           <publishers>
      <merge>
     <files>
              <file>C:\ThreePartition\output.xml</file>                 
         </files>
    </merge>
    <email from="BuildAdmin@server.com" mailhost="smtp.server.com" includeDetails="TRUE">
            <users>
          <user name="Maddy" group="buildmaster" address="Maddy.@server.com"/>
            </users>
            <groups>                        <group name="buildmaster" notification="always"/>
                    <group name="developers" notification="change"/>
            </groups>
    </email>

Best Answer

Some ideas:

  • Eliminate other obvious applications that would be writing to that file: other CCNet projects, other CCNet instances (e.g. are you maybe running the service and something from the command line?), or perhaps your source control.
  • If you're not attached to NAnt, try MSBuild and see if you get the same error. If all you're doing is compiling, you can pass the .sln or .csproj as a parameter directly to MSBuild.
  • Make sure you're on the latest version of CCNet - they regularly publish what I would consider fairly major bug fixes regularly.
Related Topic