1

如何制作 NAnt 包含/排除模式以包含根 /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\" />

但它最终也删除了根 bin。

4

1 回答 1

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>

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

于 2014-03-04T21:50:01.377 回答