[TOC]
NAnt is a free .NET build tool. In theory it is kind of like make without make's wrinkles. In practice it's a lot like Ant.
Git: https://github.com/nant/nant
https://sourceforge.net/projects/nant/files/nant/0.92/
NAnt 程序安装目录下的 \doc\help\index.html
从官网下载相应的二进制文件,比如 nant-0.92-bin.zip
把他解压到某个目录,比如:E:\PersonalAssets\nant
在系统环境变量中添加NAnt的bin目录,如下图所示
打开命令行,输入 nant -h
显示如下信息,则说明已成功配置。
编写执行脚本文件,如下图所示 Hello.build
<?xml version="1.0" encoding="utf-8"?> <project name="EchoDemo" default="Run"> <target name="Run"> <echo message="Hello NAnt"/> </target> </project>
执行命令:nant -buildfile:C:\Users\Administrator\Desktop\Hello.build
https://nant.sourceforge.net/release/latest/help/fundamentals/projects.html
https://nant.sourceforge.net/release/latest/help/fundamentals/targets.html
https://nant.sourceforge.net/release/latest/help/fundamentals/tasks.html
https://nant.sourceforge.net/release/latest/help/tasks/index.html
<?xml version="1.0" encoding="utf-8"?> <project name="EchoDemo" default="Run"> <target name="Run"> <!-- 输出单行信息 --> <echo message="Hello NAnt" /> <!-- <echo message="level is :${level}" /> --> <!-- Debug 下输出的信息(nant -buildfile:C:\Users\Administrator\Desktop\echo.build -debug) --> <echo message="Hello NAnt in debug model ." level="Debug"/> <!-- Error 下输出的信息(nant -buildfile:C:\Users\Administrator\Desktop\echo.build -q) --> <echo message="Hello NAnt in Error model ." level="Error"/> <!-- 输出多行信息 --> <echo>第一行信息 第二行信息 第三行信息</echo> <!-- 函数调用 --> <!-- <echo message="Base build directory = ${nant.project.basedir}" /> --> <echo message="Base build directory = ${project::get-base-directory()}" /> <!-- 输出到文件 --> <echo file="buildmessage.txt">Base build directory = ${project::get-base-directory()}</echo> </target> </project>
<?xml version="1.0" encoding="utf-8"?> <project name="LoadfileDemo" default="Run"> <description>loadfile 使用示例</description> <!-- 参数定义 --> <property name="fileName" value="projectName.txt" /> <!-- 从文件加载数据到 message 参数中 --> <loadfile file="${fileName}" encoding="utf-8" property="message" /> <!-- 从文件加载数据到 content 参数中,并把文件内容中的 @NOW@ 进行替换 --> <loadfile file="${fileName}" encoding="utf-8" property="content"> <filterchain> <replacetokens> <token key="NOW" value="${datetime::now()}" /> </replacetokens> </filterchain> </loadfile> <!-- 从文件加载数据到 content2 参数中,并使用replacestring把文件内容中的 NOW 进行替换 --> <loadfile file="${fileName}" encoding="utf-8" property="content2"> <filterchain> <replacestring from="@NOW@" to="2024年7月26日 16点30分" /> <replacestring from="NOW" to="2024年7月26日 16点13分" /> </filterchain> </loadfile> <target name="Run"> <echo message="从 ${fileName} 文件加载数据" /> <echo message="文件内容:${message}" /> <echo /> <echo message="替换处理后的文件内容:${content}" /> <echo /> <echo message="替换处理后的文件内容:${content2}" /> </target> </project>