代码改变世界

NAnt学习笔记(2) -- 节点的含义解释

  JustRun  阅读(415)  评论(0编辑  收藏  举报
复制代码
 1 <?xml version="1.0"?>
 2     <project name="Hello World" default="build" basedir=".">
 3         <description>The Hello World of build files.</description>
 4         <property name="debug" value="true" overwrite="false" />
 5         <target name="clean" description="remove all generated files">
 6             <delete file="HelloWorld.exe" failonerror="false" />
 7             <delete file="HelloWorld.pdb" failonerror="false" />
 8         </target>
 9         <target name="build" description="compiles the source code">
10             <csc target="exe" output="HelloWorld.exe" debug="${debug}">
11                 <sources>
12                     <includes name="HelloWorld.cs" />
13                 </sources>
14             </csc>
15         </target>
16     </project>
复制代码

 

1. Project

属性 描述 必须?
name project的名称 No
default 当在命令行中运行,没有提供运行那个target的时候,默认执行的target No
basedir 执行的基于路径,没有指定的话,默认是该配置文件的父目录 No

 

2. Targets

属性 描述 必须?
name target名称 Yes
depends 依赖于那个其它的target No
if 当if条件符合时,才会执行 No
unless 当条件符合时,忽略执行 No
description 描述 No

 

3. Task

Task就是一块可执行的代码

Tasks的结构:

<name attribute1="value1" attribute2="value2" ... />

具体的task类型可以访问这里: http://nant.sourceforge.net/release/latest/help/tasks/

 

加载扩展

上面的task类型也许不能够满足你的需求,比如svn取代码,这个时候你需要一些其它的扩展。

扩展有4类, Tasks, Filters, Functions, Global Types

这里有NAnt常用的扩展, 下载地址:http://nantcontrib.sourceforge.net/nightly/latest/nantcontrib-bin.zip

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示