Alex G.P.
Alex G.P.

Reputation: 10028

Create complex fileset conditions in Nant

I wand to deploy my site by hand (just copy required files) via Nant. But I need couple of .cs files in App_Code directory. I prepared following code, but it is excluding all .cs files and do not include files in App_Code. What is precedence (if exists) of include/exclude? How to fix it?

<copy todir="${deploy.dir}">
  <fileset basedir="D:\Src\MyRroj\Web">
    <include name="**/*"/>
    <exclude name="**/*.cs"/>
    <include name="App_Code/*.cs"/>
    <exclude name="Web.config.template"/>
    <exclude name="SqlMap.config.template"/>
  </fileset>
</copy>

Upvotes: 1

Views: 720

Answers (1)

raider33
raider33

Reputation: 1673

Include adds files and exclude trims files. Ordering includes,excludes shouldn't matter as the includes are applied first and then excludes are applied. Normally I would suggest making 2 filesets, but copy doesn't support multiple filesets, so the easiest solution is 2 separate copy commands.

<copy todir="${deploy.dir}">
  <fileset basedir="D:\Src\MyRroj\Web">
    <include name="**/*"/>
    <exclude name="**/*.cs"/>
    <exclude name="Web.config.template"/>
    <exclude name="SqlMap.config.template"/>
  </fileset>
</copy>
<copy todir="${deploy.dir}">
  <fileset basedir="D:\Src\MyRroj\Web">
    <include name="App_Code/*.cs"/>
  </fileset>
</copy>

Upvotes: 1

Related Questions