Cruisecontrol.net Net忽略NAnt文件集

Cruisecontrol.net Net忽略NAnt文件集,cruisecontrol.net,nant,Cruisecontrol.net,Nant,我正在通过复制一个文件集来发布一个网站,该文件集应排除.cs和其他文件。我已经从命令行测试了NAnt脚本,它工作正常,但是当从CCNet调用它时,它会复制所有文件,完全忽略文件集上的排除项。知道这里出了什么问题吗 从CruiseControl.Net调用我的NAnt构建文件 <tasks> <nant> <executable>$(nant.exe)</executable> <baseDirectory>$(bui

我正在通过复制一个文件集来发布一个网站,该文件集应排除.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 0.91和CCNet 1.6.7981.1

在调试模式下运行NAnt脚本并检查NAnt是否实际复制了.vb文件后,我返回到我的CCNet配置。我意识到我在ccnet.config中定义了一个buildpublisher块,并在ccnet项目文件中使用它。NAnt任务正确复制文件后,buildpublisher任务会在不使用任何筛选器的情况下重新复制所有文件(包括.vb文件、.svn目录等)


C:\myprojects\project1\src
C:\myprojects\project1\src\published
假的
假的

删除buildpublisher任务修复了该问题。

我建议输出${publish.path}和${src.path}的值,看看它们在这两个实例中是否相同。谢谢Rami。我输出路径,它们在两种情况下都是相同的:“src\”和“published\”。批处理文件与Nant脚本位于同一目录中。我很确定我已经尝试过使用完整路径了,但我会再试一次。完整路径没有什么区别。在将-debug添加到buildArgs之后,我检查了构建日志。它告诉我每一个被删除和复制的文件,没有一个提到.vb文件。但是,当我查看“published”目录时,每个.vb文件都在那里。即使在NAnt任务中删除/重新创建“published”目录时,也会发生同样的情况。我无法理解.vb文件是如何潜入其中的。甚至.svn文件夹也被复制,该文件夹应被defaultexcludes=“true”阻止。请尝试改用。您还可以尝试从src.path和publish.path中删除尾随的反斜杠,以查看这是否有区别。
<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 -buildfile:test.build.xml -debug
<buildpublisher>
  <sourceDir>C:\myprojects\project1\src</sourceDir>
  <publishDir>C:\myprojects\project1\src\published</publishDir>
  <useLabelSubDirectory>false</useLabelSubDirectory>
  <alwaysPublish>false</alwaysPublish>
</buildpublisher>