包含/排除模式的NAnt包括根bin文件夹但不包括子bin文件夹

时间:2013-05-21 17:44:17

标签: nant

如何制作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\" />

但它也最终删除了根箱。

1 个答案:

答案 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>

第一个星号基本上意味着“我们不想考虑第一级文件夹”。