NAnt工具使用

[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.

一、NAnt官网

https://nant.sourceforge.net/

Git: https://github.com/nant/nant

NAnt 0.92 下载

https://sourceforge.net/projects/nant/files/nant/0.92/

二、帮助文档

在线文档

image-20240726140310854

离线文档

NAnt 程序安装目录下的 \doc\help\index.html

三、安装与配置

  1. 从官网下载相应的二进制文件,比如 nant-0.92-bin.zip

  2. 把他解压到某个目录,比如:E:\PersonalAssets\nant

  3. 在系统环境变量中添加NAnt的bin目录,如下图所示

    image-20240726104315120

  4. 打开命令行,输入 nant -h 显示如下信息,则说明已成功配置。

    image-20240726104649761

四、 使用

image-20240726111243753

五、配置参数详解

5.1 Projects 参数

https://nant.sourceforge.net/release/latest/help/fundamentals/projects.html

5.2 Targets

https://nant.sourceforge.net/release/latest/help/fundamentals/targets.html

5.3 Tasks

https://nant.sourceforge.net/release/latest/help/fundamentals/tasks.html

Task Reference

https://nant.sourceforge.net/release/latest/help/tasks/index.html

<echo>

<?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>
See Also
  1. Level

<loadfile>

<?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>
See Also
  1. filterchain
  2. Filter Reference
  3. replacetokens
  4. replacestring

六、相关参考

  1. NAnt 简介