一、安装NANT,

(1):http://nant.sourforge.net 上下载最新版本的NAnt安装文件。目前为9.0
(2):解压下载好的文件到本地系统的位置,如C:/Program Files
(3):通过环境配置将C:/Program Files/nant-0.9/bin添加到Path中,或者在C:/windows
目录下创建一个nant.bat文件,内容为
@echo off
"C:\Program Files\nant-0.9\bin\NAnt.exe" %*
双击运行
 
二、创建构建文件
       Nant的构建文件的后缀不为xml,但是符合xml的文档规范
<?xml version=”1.0”?>
<project name=”My Greate Project” default=”test”>
       <property name=”basename” value=”MyGreateProject”/>
 
       <property name=”debug” value=”true”/>
       <target name=”clean”>
              <delete>
                     <fileset>
                            <include name=”${basename}-??.exe”/>
                            <include name=”${basename}-??.pdb”/>
                     </fileset>
              </delete>
       </targer>
 
       <target name=”compile”>
              <csc target=”exe” output=”${basename}-cs.exe” debug=”${debug}”>
                     <sources>
                            <includes name=”${basename}.cs”/>
                     </sources>
              </csc>
       </target>
 
       <target name =”test” depends=”compile”>
              <exec program=”${basename}-cs.exe” basedir=”.”/>
       </target>
</project>
 
 
在文件中有3种重要标志:
        1.      Project表示构建文件的项目,每个构建文件有且只有一个项目,他包括一系列的target name=“My Greate Project”表示项目的名称,或者说是C#中的namespace,后面是可选的default=”show”,表示项目默认的目的,basedir=“.”表示基准目录为当前目录。
总而言之,Project标记可以定义一个name特性(Attribute)和一个default特性,name特性在Nant运行时构建的输出中使用。
        2.      property是另一个重要属性,属性包含一个名称(由name表示)和一个值(value表示)一旦属性定义完成吗,就可以通过下述方式引用属性的值:
“${basename}”
       3.      target标记,target标记与name特性一起定义,而name特性在构建文件中必须是唯一的,应当注意的是,无论是否定义(未定义目标则使用预定义为默认目标)NAnt是通过名称来找到目标,无法定位目标则报错,其次,一旦定位到目标,Nant就会检查目标是否通过depends特性定义的依赖目标,若存在依赖目标,则首先执行依赖目标。
 
以下列举了构建文件中定义3个目标:clean,compile,和test
         Clean的目标是为了移除构建这个项目过程中所产生的文件,可以确保项目的构建是从头开始的。
<target name=”clean”>
              <delete>
                     <fileset>
                            <include name=”${basename}-??.exe”/>
                            <include name=”${basename}-??.pdb”/>
                     </fileset>
              </delete>
       </targer>
 
         Delete告诉文件系统要删除的东西,由fileset标记定义。这里,为构建文件制定的文件名称以basename属性中所定义的值开头,后面跟着一个破折号,然后是两个任意字符,最后是文件的扩展名,可以是.exe或者.pdb,
 
        Compile目标定义了需要编译的内容,以及如何进行编译。
<target name=”compile”>
              <csc target=”exe” output=”${basename}-cs.exe” debug=”${debug}”>
                     <sources>
                            <includes name=”${basename}.cs”/>
                     </sources>
              </csc>
       </target>
 
        Csc标记定义.net框架的命令行编译器,csc标记的target特性告诉csc编译器创建一个应用程序作为输出。该应用程序的名称包括basename属性的值,后面跟着一个破折号,然后是字符cs,最后是文件扩展名.exe,debug告诉csc编译器是够开启调试。
<target name =”test” depends=”compile”>
              <exec program=”${basename}-cs.exe” basedir=”.”/>
       </target>
 
       Test目标使用了一个exec标记,改标记可以执行热河通常在命令行中执行的命令。Program特性制定了可执行文件的名称,而basedir特定制定命令在那个目录执行。为.(点),则表示当前目录。
 
介绍完三个主要的target,再介绍保存和测试构建文件的方法。
 
保存构建文件:
        构建文件需要与构建的源文件位于同一个目录下。NAnt运行时会自动地查找拥有文件扩展名.build的构建文件,保存代码清单,并命名为default.build
 
测试构建文件:
       将default.build和MyGreateProject.cs放在同个目录下,在命令行窗口,切换到该目录,在命令行上以默认目标输入nant并按回车执行NAnt构建文件。大家也可以试着运行这个构建文件中定义其他不同目标,例如输入 nant clean