NAnt 是基于 .NET 的 XML 格式开源构建工具,核心元素包括 根节点、 目标、内置任务(如 、)和 属性;最小脚本需含 与至少一个

NAnt 是一个基于 .NET 的开源构建工具,语法采用 XML 格式,结构清晰、可读性强。写 NAnt 脚本的关键是理解其核心元素:根节点 、目标()、任务(如 、、)以及属性()。下面直接讲清楚怎么写、怎么用。
基本结构:一个可运行的最小脚本
每个 .nant 文件必须有一个 根元素,至少包含一个 。以下是最简可用示例:
说明:
- default="build" 指定默认执行的目标;
- basedir="." 设定项目基准路径(相对路径以此为起点);
- 属性用 ${name} 引用,支持嵌套表达式(如 ${output.dir}/Debug);
- 任务名即 XML 元素名(如 ),大小写敏感,需严格匹配 NAnt 内置任务名。
常用任务写法与典型场景
NAnt 提供大量内置任务,覆盖编译、复制、清理、测试等。以下是高频用法:
-
编译 C# 项目:用
(C# Compiler) -
复制文件:用
,支持通配符和过滤 -
条件执行:用
if或unless属性控制任务是否运行
配合命令行传参:nant -D:build.clean=true clean
属性定义与外部参数传递
属性是 NAnt 脚本的“变量”,可在脚本内定义,也可从命令行注入:
- 脚本内定义:
; - 命令行覆盖:
nant -D:config=Release build; - 加载外部配置文件:
(格式为key=value); - 注意:属性一旦设置不可修改(只读),但
-D参数优先级最高。
目标依赖与执行流程控制
用 depends 属性声明目标间的依赖关系,NAnt 自动按拓扑序执行:
说明:
- depends="clean" 表示执行 compile 前先执行 clean;
- 多个依赖用逗号分隔,顺序不影响执行顺序(NAnt 自动解析依赖图);
- 可用 显式调用其他目标(不推荐滥用,易破坏依赖逻辑)。










