巡航控制合并?

时间:2009-04-20 14:22:43

标签: cruisecontrol.net

我已成功将IDE中存在的编译日志提取到一个xml文件中。所以为了合并它,我在ccnet.config文件中使用<merge>在发布者任务中提到了 部分。

但是当我强制构建时,我能够正确地获取output.xml文件但是 错误在ccnet.config窗口中抛出,它无法合并,因为此文件当前被其他进程使用。 请参阅以下内容:

  

[VSAT:ERROR]发布者扔了   例外:   ThoughtWorks.CruiseControl.Core.CruiseC   ontrolException:无法读取   文件内容:C:   \ ThreePartition \ outp ut.xml ---&gt;   System.IO.IOException:进程   无法访问文件'C:\ ThreeP   artition \ output.xml'因为它是   被另一个进程使用。

您能否建议任何可以成功完成合并的方法? 我已粘贴下面的整个ccnet.config文件。

                <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>

我刚刚将发布商部分放在下面以获得更好的观看次数

           <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>

2 个答案:

答案 0 :(得分:1)

一些想法:

  • 消除将写入该文件的其他明显应用程序:其他CCNet项目,其他CCNet实例(例如,您可能正在运行该服务以及命令行中的某些内容吗?),或者可能是您的源代码控制。
  • 如果您没有连接到NAnt,请尝试使用MSBuild并查看是否收到相同的错误。如果你所做的只是编译,你可以直接将.sln或.csproj作为参数传递给MSBuild。
  • 确保您使用的是CCNet的最新版本 - 他们会定期发布我认为会定期修复的主要错误。

答案 1 :(得分:0)

说的是:问题是当CC.net尝试合并时哪个进程打开了你的xml - 也许Process Explorer可能有用吗?如果将xml输出复制到单独的文件并合并它,也许它可以工作。