青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

牽著老婆滿街逛

嚴(yán)以律己,寬以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

NAnt 簡(jiǎn)介

NAnt 是一個(gè) Visual Studio .Net 應(yīng)用程序的連編工具,對(duì)大而負(fù)責(zé)的工程而言,使用 NAnt 很方便。

1.????? 安裝

http://nant.sourceforge.net 上可以下載源代碼或者編譯好的二進(jìn)制文件,一般下載 nant-bin.zip ,解壓,注冊(cè)系統(tǒng)環(huán)境變量后,就可以使用 nant 命令了。

2.????? Build 文件

XML 格式,每個(gè) build 文件包含一個(gè) project project 有若干 target ,每個(gè) target 包含若干 task Task 不被包含在 target 中,即直接包含在 project 中。

??????? Projects (工程)

三個(gè)特性, name 、設(shè)置工程名稱, default 、設(shè)置默認(rèn) target ,和 basedir 、如果不設(shè)置,默認(rèn)為 build 文件的父目錄。

執(zhí)行 nant 時(shí),可以知道 targets ,如果未指定,執(zhí)行默認(rèn)得 target ,如果 build 文件中未指定默認(rèn)得 target ,僅僅執(zhí)行全局的 task (全局的 task 總是執(zhí)行),如果沒(méi)有全局的 task ,那就什么都不執(zhí)行了。

??????? Targets (目標(biāo)、對(duì)象)

有五個(gè)特性, name 、指定名稱, depends 、此 target 所依賴的 targets (多個(gè)用“,”隔開(kāi)), if 、如果條件為 true 執(zhí)行此 target unless 、如果條件為 true 跳過(guò)此 target description 、功能的簡(jiǎn)短描述。其中 name 必須指定。

執(zhí)行某個(gè) target 時(shí),首先執(zhí)行此 target 所依賴的 targets 。一個(gè) target 可能被 depends 多次,僅執(zhí)行一次,但是通過(guò) <call> 任務(wù)( task )執(zhí)行一個(gè) target 時(shí),此 target 及其所依賴的 targets 要重新執(zhí)行一次。另外,當(dāng) target 的名稱被設(shè)置為“ * ”時(shí),稱為 wild target ,一個(gè) build 文件僅僅有一個(gè) wild target ,在目前的 build 文件中,當(dāng)且僅當(dāng)被調(diào)用的 target 不存在時(shí),才執(zhí)行 wild target ,主要用來(lái)處理無(wú)效的請(qǐng)求。

??????? Task (任務(wù))

一塊可執(zhí)行的代碼,一個(gè) task 可有多個(gè)特性和參數(shù)。特性的值可包含對(duì)屬性的引用,在 task 執(zhí)行前,這些引用會(huì)被解釋出來(lái)。

??????? Properties (屬性)

一個(gè) project 可有很多屬性,這些屬性可以通過(guò) <property 任務(wù)設(shè)置在 build 文件中,也可以設(shè)置在 Nant 外。一個(gè)屬性有一個(gè) name 和一個(gè) value ,可用于 task 的特性中,也可用于表達(dá)式,用在 task 的特性中時(shí),使用 ${property name} 格式。 Nant 有很多內(nèi)建屬性(與 nant 有關(guān)的,與框架有關(guān)的,與平臺(tái)有關(guān)的等)。

<property> 任務(wù)有 readonly overwrite 等特性, readonly 指定屬性是否是只讀到,默認(rèn) false overwirte 指定如果屬性已經(jīng)存在,屬性值是否可以重寫,默認(rèn) true ,對(duì)于只讀屬性,是不能被重寫的。注意:在 Nant 命令行指定的屬性,先于在 build 文件中指定的屬性,并且這些屬性往往是只讀的。

另外可以在 NAnt.exe.config 文件中定義全局屬性。

??????? Loggers & Listeners

Nant 通過(guò) Loggers Listeners 來(lái)監(jiān)控連編過(guò)程。 Listeners 記錄了 build started build finished target started target finished task started task finished message logged 事件, Loggers 擴(kuò)展了 Listeners ,可以按 -quiet (靜態(tài)的,平穩(wěn)的) , -verbose (詳細(xì)的) , -debug 三個(gè)層次記錄連編信息,可輸出到控制臺(tái)或者文件中。 Nant 內(nèi)建了三個(gè)類: NAnt.Core.DefaultLogger NAnt.Core.MailLogger NAnt.Core.XmlLogger 。使用時(shí): -logger :類 -logfile :文件名。可以是普通道文本文件或者 XML 文件。

??????? Expressions (表達(dá)式)

表達(dá)式是一種簡(jiǎn)單而強(qiáng)大的機(jī)制,允許寫高級(jí)的公式,用于 task 的參數(shù)和條件式中,這樣就可以控制連編過(guò)程了。表達(dá)式能夠訪問(wèn) project 的屬性、調(diào)用內(nèi)建的或者用戶定義的 functions

表達(dá)式通過(guò) ${…} 符號(hào),可用于 task 的參數(shù)中。也可以使用標(biāo)準(zhǔn)的算術(shù)、邏輯和關(guān)系運(yùn)算符。通過(guò) prefix::function-name(argument1, ..., argumentN) 語(yǔ)法調(diào)用函數(shù)。訪問(wèn)屬性,僅需指定其 name ${…}

例子:

訪問(wèn)屬性

<property name="build.version" value="3" />

<echo message="The current date is: ${build.version}" />

調(diào)用函數(shù)

<echo message="The current date is: ${datetime::now()}" />

表達(dá)式結(jié)果存儲(chǔ)

<property name="autoexec-present" value="${file::exists('c:\autoexec.bat')}" />

Real-life expression use

<property name="myprj.basedir" value="c:\" />

<property name="filename" value="${path::combine(myprj.basedir,'version.txt')}" />

?

<if test="${not file::exists(filename) or file::get-length(filename) = 0}">

??? <echo message="The version file ${filename} doesn't exist or is empty!" />

</if>

有條件執(zhí)行 task

<property name="myprj.basedir" value="c:\" unless="property::exists('myprj.basedir')" />

<csc target="library" output="out.dll" ...

???? if="${datetime::now() - file::get-last-write-time('out.dll')) > timespan::from-hours(1)}">

...

</csc>

Functions

Nant 提供了操作字符串、日期時(shí)間和路徑名字的函數(shù),還提供讀取文件或者目錄屬性,訪問(wèn)目前的連編信息等函數(shù)。

調(diào)用函數(shù)語(yǔ)法 prefix::function-name(argument1, ..., argumentN) ,需要的情況下會(huì)進(jìn)行參數(shù)類型轉(zhuǎn)換,如果轉(zhuǎn)換有誤,會(huì)報(bào)告錯(cuò)誤。

自定義函數(shù)可以使用任何 .Net 語(yǔ)言實(shí)現(xiàn),此外還可以通過(guò) <script> 任務(wù)實(shí)現(xiàn)。

3.????? 運(yùn)行 Nant

命令 Nant ,此外還可以指定 build 文件名、 targets properties 等。

Nant

NAnt -buildfile:..\fileName.build

NAnt clean

NAnt -D:debug=false clean dist

posted on 2006-07-11 11:45 楊粼波 閱讀(585) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 文章收藏

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            制服丝袜激情欧洲亚洲| 亚洲欧洲精品一区二区三区波多野1战4 | 欧美国产三区| 久久精品国内一区二区三区| 国内精品久久久久影院薰衣草| 欧美一区二区在线观看| 欧美在线欧美在线| 亚洲国产成人久久| 亚洲伦伦在线| 国产精品一区二区视频| 久久中文字幕导航| 欧美激情精品久久久久久蜜臀 | 久久精品夜色噜噜亚洲aⅴ| 久久丁香综合五月国产三级网站| 在线播放视频一区| 亚洲精品一二区| 国产亚洲欧美一级| 亚洲三级免费电影| 欧美午夜不卡视频| 男女精品视频| 国产精品区一区二区三区| 蜜桃av一区二区在线观看| 欧美激情第六页| 久久精品国产99精品国产亚洲性色| 老司机午夜精品视频| 亚洲综合电影一区二区三区| 久久成人这里只有精品| 99re热这里只有精品免费视频| 亚洲欧美国产另类| 日韩午夜一区| 久久久久久久激情视频| 亚洲五月婷婷| 欧美 日韩 国产精品免费观看| 亚洲欧美日韩综合| 欧美精品1区2区| 麻豆乱码国产一区二区三区| 欧美性猛交xxxx乱大交蜜桃| 你懂的成人av| 国产日产欧美精品| 国产精品99久久久久久白浆小说 | 国产伦精品一区二区三区| 亚洲高清免费| 精品成人a区在线观看| 亚洲综合电影一区二区三区| 999亚洲国产精| 美女主播一区| 久久一区二区精品| 国产日韩成人精品| 亚洲一区尤物| 亚洲欧美日韩综合aⅴ视频| 欧美喷潮久久久xxxxx| 欧美激情bt| 亚洲第一中文字幕| 欧美怡红院视频| 久久xxxx精品视频| 久久国产精品黑丝| 国产精品久久久久久久9999| 亚洲免费成人| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 久久久久久亚洲精品杨幂换脸| 欧美亚洲第一页| 9人人澡人人爽人人精品| 99国产一区| 欧美日韩国产限制| 夜夜躁日日躁狠狠久久88av| 夜夜精品视频一区二区| 欧美日韩ab片| 一区二区三区四区五区视频 | 亚洲精品一区二区三区婷婷月 | 国产精品亚洲一区二区三区在线| av成人免费观看| 亚洲欧美伊人| 国产视频精品免费播放| 欧美一区二区三区在线观看| 久久久国产精品一区| 在线欧美福利| 欧美精品自拍| 亚洲一二三区视频在线观看| 久久高清一区| 亚洲电影激情视频网站| 欧美丰满高潮xxxx喷水动漫| 亚洲精品之草原avav久久| 亚洲你懂的在线视频| 国产美女在线精品免费观看| 久久精品视频免费播放| 亚洲承认在线| 亚洲欧美区自拍先锋| 韩国av一区| 欧美激情小视频| 亚洲制服少妇| 欧美激情一区二区三区在线| 亚洲图片欧美一区| 韩日精品在线| 欧美日韩在线观看一区二区| 亚洲欧美日韩国产综合在线| 美女视频一区免费观看| 一本在线高清不卡dvd| 国产性做久久久久久| 欧美国产日韩a欧美在线观看| 一区二区三区波多野结衣在线观看| 欧美永久精品| 日韩视频在线免费| 国产区在线观看成人精品| 欧美大片在线观看| 欧美亚洲综合另类| 一区二区三区**美女毛片| 欧美96在线丨欧| 欧美一级视频精品观看| 日韩一二三在线视频播| 国产主播一区二区三区四区| 欧美久色视频| 久久综合伊人77777麻豆| 亚洲一本大道在线| 亚洲精品在线观看视频| 欧美大色视频| 国产精品一区二区久激情瑜伽| 亚洲人成在线观看| 久久综合狠狠综合久久激情| 亚洲一区二区三区影院| 亚洲精品女人| 亚洲国产精品久久人人爱蜜臀| 国产精品婷婷午夜在线观看| 欧美久久一级| 欧美激情精品久久久久久黑人| 久久精品国产第一区二区三区最新章节 | 亚洲精品欧美极品| 国产主播精品在线| 国产亚洲欧美日韩精品| 国产精品成人免费| 欧美日韩国产成人在线| 欧美大片18| 欧美成人免费va影院高清| 久久综合激情| 久久综合福利| 久久久欧美精品sm网站| 久久久久久亚洲精品杨幂换脸| 亚洲欧美成人精品| 亚洲永久在线观看| 亚洲午夜羞羞片| 亚洲在线一区| 午夜一区二区三区不卡视频| 亚洲欧美日韩国产成人精品影院| 亚洲午夜激情网页| 亚洲永久精品大片| 欧美一区日韩一区| 久久精品视频在线| 久久综合五月| 欧美日韩国产成人在线免费| 欧美日韩91| 国产精品美女久久福利网站| 国产精品盗摄久久久| 国产精品美女一区二区| 国产美女高潮久久白浆| 加勒比av一区二区| 亚洲国产日韩欧美| 亚洲人成网站影音先锋播放| 亚洲伦理精品| 亚洲欧美日韩一区| 久久精品系列| 欧美激情亚洲国产| 一区二区三区精品视频| 亚洲欧美视频在线观看| 久久精品成人欧美大片古装| 免费毛片一区二区三区久久久| 欧美精品一区二区三区久久久竹菊 | 亚洲国产精品传媒在线观看| 亚洲区中文字幕| 亚洲综合日韩| 久久影院午夜片一区| 欧美日本亚洲韩国国产| 国产精品免费在线| 伊人成人网在线看| 中日韩在线视频| 久久久精品一区| 最新成人在线| 欧美一区二区黄色| 欧美国产日韩一二三区| 国产精品国产三级国产专区53| 国产综合色精品一区二区三区| 亚洲日本理论电影| 欧美一级片久久久久久久| 亚洲第一视频网站| 亚洲欧美bt| 欧美成人一区二免费视频软件| 国产精品极品美女粉嫩高清在线| 激情成人亚洲| 午夜精品短视频| 欧美一级欧美一级在线播放| 国产一区二区中文字幕免费看| 最新精品在线| 久久国产欧美精品| 妖精视频成人观看www| 久久蜜臀精品av| 国产精品一卡| 中文欧美字幕免费| 欧美国产精品| 久久精品91| 国产欧美一区二区精品性色| 一区二区三区免费看| 老司机精品久久|