Cruisecontrol.net Net忽略NAnt文件集
我正在通过复制一个文件集来发布一个网站,该文件集应排除.cs和其他文件。我已经从命令行测试了NAnt脚本,它工作正常,但是当从CCNet调用它时,它会复制所有文件,完全忽略文件集上的排除项。知道这里出了什么问题吗 从CruiseControl.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
<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>