2009-04-20 96 views
0

我已经成功地将我的IDE中存在的编译日志解压到一个xml文件中。因此,为了合并它,我在发布者任务中使用<merge> 部分在我的ccnet.config文件中提到过。巡航控制合并?

但是,当我强迫我的身材,我能够正确地得到output.xml文件,但一个 错误是ccnet.config窗口,它无法合并,因为这文件是目前使用的一些其他进程抛出。 请参阅以下内容:

[VSAT:ERROR]发布抛出 例外: ThoughtWorks.CruiseControl.Core.CruiseC ontrolException:无法读取该文件的内容 :C: \ ThreePartition \ OUTP UT .xml ---> 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="[email protected]" 
     mailhost="smtp.servermail.com" includeDetails="TRUE"> 
    <users> 
    user name="Maddy" group="buildmaster" 
    address="[email protected]"/> 
    </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="[email protected]" mailhost="smtp.server.com" includeDetails="TRUE"> 
      <users> 
      <user name="Maddy" group="buildmaster" address="[email protected]"/> 
      </users> 
      <groups>      <group name="buildmaster" notification="always"/> 
        <group name="developers" notification="change"/> 
      </groups> 
    </email> 

+1

恩,你可以做一个编辑并从代码部分删除休息吗?这是非常难以阅读的。谢谢 – Lucero 2009-04-20 14:26:10

回答

1

一些想法:

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

说什么:问题是哪个进程在CC.net尝试合并时打开xml - 可能Process Explorer可能有用?如果您将xml输出复制到单独的文件并合并它,也许它会起作用。