在NAnt中加入Vssget 任务

如何将Vssget task加到Nant

    (此篇文章有些繁琐,请大家看我Blog下一节)                  

Vssget这个tasknant中默认是没有的,为了要将VSS DataBase Server中的数据调动了本地来编译,得要在nant中加入 vssget 这个task.方法如下:

1 下载NAnt的最新版本

http://nant.sourceforge.net/builds/  目前最新版本是0.85版本. 目前最新版本是0.85版本.

NAnt加入到系统的环境变量中去

2 NAnt加到环境变量中

在系统变量中找到 “path” 然后将值改为 nant.exe的目录地址 如:d:nant\bin .

3 检查 .Net FrameWork的版本

如果你的.net framework 1.0的不用修改.则跳到 步骤4.

如果你的.net framework1.1或者以上的版本则要配置一下. 配置文件在NAnt安装目录\Bin目录下,名称为Nant.exe.config,使用的.Net Framework版本信息存储在frameworkinfo->nantsettings->frameworks>tag下面。如果安装的是1.1版本,那么改为1.1.4322就可以了,看看Windows安装目录下的Microsoft.NET\Framework目录下列出了所有安装的Framework版本.

4 安装并且编译NAntContrib

下载 http://nantcontrib.sourceforge.net/nightly/builds/

进入NAnt的 根目录 运行以下命令

bin\NAnt.exe package

进入NAntContrib 的根目录 运行以下命令

Nant –D:nant.dir=c:\nant-debug-f:NAntContrib.build

其中 c:\nantnant的根目录(BIN的上一级目录)

将 生成的build\bin  目录下的所有文件都拷贝到 nant\bin 

这样在 NAnt中就可以使用VSSGET这个task.


1:

NAnt CSC  一个.CS文件,源码如下:

<?xml version="1.0"?>

  <project name="Test" default=”t1" basedir="."> <!-- name是工程名字 default 里的是即将运行的 target 的名字. Basedir 是根目录的地址-->

    <target name="t1">

      <csc target="exe" output="Test.exe"><!--target指的输入目标文件的类型,如果是要输出.DLL文件,则把EXE写成library.output是输出文件的名字-->

        <sources>

          <includes name="Test.cs"/> <!—源文件地址及名字-->

        </sources>

      </csc>

    </target>

  </project>

1.1最新的 NAnt task及其对应属性列表.

http://nant.sourceforge.net/help/tasks/index.html

2:

NAnt 编译一个 解决方案,源码如下,注释用”//”,如果要编译时注释用”<!-- -->”.

<?xml version="1.0"?>

<project name="test2" default="build" basedir=".">  //build的时候将运行名为 build这个target

<property name="Solution.Filename" value="D:\ClientVSS\test\test.sln"/>

 //name是解决方案的名字  value是解决方案的地址. 可以写成服务器的地址,: \\dsi_coolbug\共享目录

<property name="Solution.Configuration" value="DEBUG"/>

<property name="Build.OutputFolder" value="d:\result\"/>

// name输出文件名 value :输出文件地址

//上边是第一个解决方案

 

<property name="Solution2.Filename" value="D:\ClientVSS\test2\test2.sln"/>

<property name="Solution2.Configuration" value="DEBUG"/>

<property name="Build2.OutputFolder" value="d:\result\"/>

//上边是第二个解决方案

<target name="t1">

<solution solutionfile="${Solution.Filename}" outputdir="${Build.OutputFolder}test\" configuration="${Solution.Configuration}" />

</target>

//上边是运行第一个解决方案的target  ”$”号的是引用上边project里的名字.

<target name="t2">

<solution solutionfile="${Solution2.Filename}" outputdir="${Build2.OutputFolder}test2\" configuration="${Solution2.Configuration}" />

</target>

<target name="delete">

<delete dir="c:\b\" failonerror="false" />

</target>//target是删除 c:\b 这个目录

<target name="build">

<call target="t1" />  //调用 名为 t1 target

<call target="t2" />  //调用名为  t2 target

</target>

</project>

 

3:

NANT 获得VSS DataBase服务器上的文件,并输出到本地:

<?xml version="1.0"?>

  <project name="Test1" default="t1" basedir=".">

     <target name="t1">

        <vssget user="coolbug" password="******" localpath="d:\result" dbpath="\\dsi_coolbug\test\NantVSS\srcsafe.ini" path="$/" />

//user :VSS上的帐号   password: VSS上帐号对应的密码

//localpath: 输出到本地的地址  dbpath: 服务器上的INI文件地址

//path:要获得服务器上的哪个目录下的所有文件,本例是根目录下的所有文件.

    </target>

</project>

关于 NAntContrib的新的task 及其所有的属性列表,请参见:

http://nantcontrib.sourceforge.net/help/tasks/index.html

VSSGET task的属性列表:

http://nantcontrib.sourceforge.net/help/tasks/vssget.html

 

 

               

posted on 2004-07-19 13:11  CoolBug  阅读(2001)  评论(4编辑  收藏  举报