如何制作NAnt包含/排除模式以包含root / bin目录及其文件,但是排除作为其他目录的子目录的bin目录?
<target name="createArtifacts">
<copy todir="${destdir}" includeemptydirs="false">
<fileset basedir="${sourcedir}">
<include name="**" /> <!-- this will get the root \bin folder -->
<exclude name="**\bin\*.pdb" />
<exclude name="**\bin\*.xml" />
...
</fileset>
</copy>
</target>
我希望这能排除任何不是根绑定文件夹的bin文件夹:
<exclude name="\**\bin\" />
但它也最终删除了根箱。
答案 0 :(得分:2)
你一直非常接近答案。您应该只添加一个星号作为exclude
模式中的第一个字符。拿你的样本,这将是这样的掠夺:
<target name="createArtifacts">
<copy todir="${destdir}" includeemptydirs="false">
<fileset basedir="${sourcedir}">
<include name="**" />
<exclude name="*\**\bin\*.pdb" />
<exclude name="*\**\bin\*.xml" />
...
</fileset>
</copy>
</target>
第一个星号基本上意味着“我们不想考虑第一级文件夹”。