CruiseControl.Net忽略NAnt文件集

时间:2012-01-17 13:27:21

标签: cruisecontrol.net nant

我通过复制一个应该排除.cs和其他文件的文件集来发布网站。我已经从命令行测试了我的NAnt脚本并且它工作正常但是当它从CCNet调用时,它会复制所有文件,完全忽略我的文件集上的排除。任何想法在这里出了什么问题?

从CruiseControl.Net调用我的NAnt构建文件。

<tasks>
  <nant>
    <executable>$(nant.exe)</executable>
    <baseDirectory>$(build-dir)\$(project-dir)</baseDirectory>
    <buildArgs></buildArgs>
    <nologo>true</nologo>
    <buildFile>aview-dev.build.xml</buildFile>
    <targetList>
      <target>go</target>
    </targetList>
    <buildTimeoutSeconds>300</buildTimeoutSeconds>
  </nant>
</tasks>

NAnt构建文件的大块似乎不起作用(我的'发布'步骤的一部分)。

<copy todir="${publish.path}" includeemptydirs="false">
  <fileset basedir="${src.path}" defaultexcludes="true">
    <include name="**/**" />
    <exclude name="**.csproj*"/>
    <exclude name="**.cs"/>
    <exclude name="**.vb"/>
    <exclude name="**.sln"/>
    <exclude name="**/obj/**"/>
  </fileset>
</copy>

直接从命令提示符运行时,相同的NAnt文件可以正常工作。

nant -buildfile:test.build.xml -debug

我正在使用NAnt 0.91和CCNet 1.6.7981.1

1 个答案:

答案 0 :(得分:0)

在调试模式下运行NAnt脚本并检查.nt文件实际上没有被NAnt复制之后,我又回到了CCNet配置。我意识到我在ccnet.config中定义了一个buildpublisher块,并在我的ccnet项目文件中使用了它。在NAnt任务正确复制文件后,buildpublisher任务重新复制了所有内容,没有任何过滤器(包括.vb文件,.svn目录等)。

<buildpublisher>
  <sourceDir>C:\myprojects\project1\src</sourceDir>
  <publishDir>C:\myprojects\project1\src\published</publishDir>
  <useLabelSubDirectory>false</useLabelSubDirectory>
  <alwaysPublish>false</alwaysPublish>
</buildpublisher>

删除buildpublisher任务解决了问题。