NAnt help:http://nant.sourceforge.net/release/latest/help/tasks/
NAntContrib help:http://nantcontrib.sourceforge.net/nightly/latest/help/tasks/index.html

下面有贴出代码,下载链接http://download.csdn.net/detail/dfg727/6614231
1.Build .CS files:
CSBat.bat
CSBuild.build

2.Build Solution By Solution:  some computer have error
SlnBat.bat
SlnBuild.build

3.Build Solution By Msbuild
MSBuild.bat
MSBuild.build
两种方法:
a.<target name="build" depends="clean">
        <!--<mkdir dir="bin"/>     -->
        <exec program="${msbuild.path}" commandline="${solution.file} /t:Rebuild /p:Configuration=${project.config} /v:q" workingdir="." />
    </target>

b.调用bat文件, msbuild命令写在bat中
nant调用bat文件
<target name="msbuild">
    <exec program="msbuild.bat"/>
</target>

/t:Rebuild|Clearn 生成目标
/p:Configuration=Debug|Release 项目属性
/l:FileLogger,Microsoft.Build.Engine;logfile=Build.log 编译日志
/clp:PerformanceSummary 显示任务、目标和项目花费的时间

bat命令:
C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/MSBuild.exe "F:/Test/NAntTest/Test1/test1.sln" /t:Build /p:Configuration=Debug

c.nant中用msbuild命令节点(需要NAntContrib)
MSBuild2.bat
MSBuild2.build

4.get svn code by exec run svn.exe:  增加到环境变量Path中 ;C:\Program Files\VisualSVN\bin;
svn.bat
svn.build

5.get svn code by NAntContrib:    增加到环境变量Path中 ;C:\Program Files\VisualSVN\bin;
svn2.bat
svn2.build

6.build NUnit files and run this dll to get test result, 文件中引用了其他的dll
Nunit.bat
Nunit.build     --为了增加测试结果的可读性,可以使用另一个工具NUnit2Report,将测试结果转换为直观的HTML文件。
NUnitTarget.cs
NUnitTarget2.cs

CSBuild.bat(调用NAnt文件CSBuild.build, 后面的调用就不贴了)

echo this is CSBuild.bat

echo params:%*

..\..\..\bin\nant\nant.exe -buildfile:CSBuild.build %* -logfile:CSLog.log

pause

CSBuild.build

<?xml version="1.0" encoding="gb2312"?>

<project name="Test" default="run" basedir=".">
<property name="dir.bin" value="bin" />
<property name="file.exe" value="${dir.bin}\HelloWorld.exe" /> <target name="run">
<exec program="echoMessage.bat" />
<call target="implement"/>
</target> <target name="clean">
<delete dir="bin" failonerror="false"/>
</target> <target name="build" depends="clean">
<mkdir dir="bin"/>
<csc target="exe"
output="${file.exe}">
<sources>
<include name="HelloWorld.cs"/>
</sources>
</csc>
</target> <target name="implement" depends="build">
<exec program="${file.exe}"/>
</target> </project>

HelloWorld.cs

using System;

class Hello
{
static void Main()
{
Console.WriteLine("Hello");
}
}

echoMessage.bat

echo. this is from echoMessage.bat

SlnBuild.build

<?xml version="1.0" encoding="gb2312"?>

<project name="Test" default="run" basedir=".">
<property name="Solution.Filename" value="D:\workspaces\WorkDemo\Work2008.sln"/>
<property name="Solution.Configuration" value="DEBUG"/>
<property name="Build.OutputFolder" value="bin"/> <target name="run">
<call target="implement"/>
</target> <target name="clean">
<delete dir="bin" failonerror="false"/>
</target> <target name="build" depends="clean">
<!--<mkdir dir="bin"/> -->
<solution solutionfile="${Solution.Filename}"
outputdir="${Build.OutputFolder}"
configuration="${Solution.Configuration}"/>
</target> <target name="implement" depends="build"> </target> </project>

MSBuild.build

<?xml version="1.0" encoding="gb2312"?>

<project name="Test" default="run" basedir=".">
<property name="msbuild.path" value="${framework::get-framework-directory(framework::get-target-framework())}\msbuild.exe" />
<property name="solution.file" value="D:\workspaces\WorkDemo\Work2010.sln"/>
<property name="project.config" value="debug" />
<property name="Build.OutputFolder" value="D:\workspaces\WorkDemo\WorkDemo.Tests\bin\Debug"/>
<property name="Build.OutputFolder2" value="D:\workspaces\Learns\Nant\ExampleNet\bin"/> <target name="run">
<call target="implement"/>
</target> <target name="clean">
<delete dir="bin" failonerror="false"/>
</target> <target name="build" depends="clean">
<!--<mkdir dir="bin"/> -->
<exec program="${msbuild.path}" commandline="${solution.file} /t:Rebuild /p:Configuration=${project.config};OutputPath=${Build.OutputFolder2} /v:q" workingdir="." />
</target> <target name="implement" depends="build">
</target> </project>

MSBuild2.build

<?xml version="1.0" encoding="gb2312"?>

<project name="Test" default="run" basedir=".">
<property name="msbuild.path" value="${framework::get-framework-directory(framework::get-target-framework())}\msbuild.exe" />
<property name="solution.file" value="D:\workspaces\WorkDemo\Work2010.sln"/>
<property name="project.config" value="debug" />
<property name="Build.OutputFolder" value="D:\workspaces\WorkDemo\WorkDemo.Tests\bin\Debug"/>
<property name="Build.OutputFolder2" value="D:\workspaces\Learns\Nant\ExampleNet\bin"/> <target name="run">
<call target="implement"/>
</target> <target name="clean">
<delete dir="bin" failonerror="false"/>
</target> <target name="build" depends="clean">
<echo message="Building..." /> <msbuild project="${solution.file}" verbosity="minimal" failonerror="true" verbose="false">
<arg value="/p:Configuration=${project.config};OutputPath=${Build.OutputFolder2}" />
<arg value="/p:UseWPP_CopyWebApplication=True" />
<arg value="/p:PipelineDependsOnBuild=False" />
<!--<arg value="/p:WebProjectOutputDir=${staging.output}\" />-->
<arg value="/t:Rebuild" />
<arg value="/nologo" />
</msbuild> <echo message="Building finished..." />
</target> <target name="implement" depends="build"> </target> </project>

svn.build

<?xml version="1.0" encoding="gb2312"?>

<project name="Test" default="run" basedir=".">
<property name="svnUri" value="https://svn.code.sf.net/p/if01else/code-0/branches/20131124/Learns/Nant/testsolution/Hello" />
<property name="workDir" value="SvnFolder"/> <target name="run">
<call target="implement"/>
</target> <target name="clean">
<delete dir="${workDir}" failonerror="false"/>
</target> <target name="build" depends="clean">
<svn-checkout uri="${svnUri}"
destination="D:\ExampleNet"
username="ifelse01" password="if01else"/> </target> <target name="implement" depends="build">
</target> </project>

svn2.build

<?xml version="1.0" encoding="gb2312"?>

<project name="Test" default="run" basedir=".">
<property name="svnLocation" value="C:\Program Files\VisualSVN\bin\svn.exe"/>
<property name="svnUri" value="https://svn.code.sf.net/p/if01else/code-0/branches/20131124/Learns/Nant/testsolution/Hello" />
<property name="workDir" value="SvnFolder"/> <target name="run">
<call target="implement"/>
</target> <target name="clean">
<delete dir="${workDir}" failonerror="false"/>
</target> <target name="build" depends="clean">
<exec program="${svnLocation}"
commandline="checkout ${svnUri} ${workDir} --username ifelse01 --password if01else"/>
</target> <target name="implement" depends="build">
</target> </project>

Nunit.build

<?xml version="1.0" encoding="gb2312"?>

<project name="Test" default="run" basedir=".">
<property name="dir.bin" value="bin" />
<property name="file.dll" value="${dir.bin}\NUnitTarget.dll" />
<property name="dir.report" value="report" /> <target name="run">
<call target="implement"/>
</target> <target name="clean">
<delete dir="bin" failonerror="false"/>
</target> <target name="build" depends="clean">
<csc target="library"
output="${file.dll}">
<sources>
<include name="NUnitTarget.cs"/>
<include name="NUnitTarget2.cs"/>
</sources>
<references>
<include name="D:\workspaces\bin\nunit\nunit.framework.dll" />
</references>
</csc>
</target> <target name="implement" depends="build"> <nunit2>
<formatter type="Xml" usefile="true" extension=".xml" outputdir="${dir.report}" />
<test assemblyname="${file.dll}" haltonfailure="false" />
</nunit2> <nunit2report todir="${dir.report}" format="NoFrames">
<fileset>
<include name="${dir.report}/*.xml" />
</fileset>
</nunit2report>
</target> </project>

NUnitTarget.cs

using System;
using System.Collections.Generic;
using System.Text;
using NUnit.Framework; namespace Test1
{
[TestFixture]
public class NUnitTarget
{
[Test]
public void Test()
{
Assert.AreEqual(, );
} [Test]
public void Test2()
{
Assert.AreEqual(, );
}
}
}

NUnitTarget2.cs

using System;
using System.Collections.Generic;
using System.Text;
using NUnit.Framework; namespace Test1
{
[TestFixture]
public class NUnitTarget2中文
{
[Test]
public void Test中文()
{
Console.Write("NUnitTarget2.Test中文");
}
}
}

学习NAnt Build .CS+Solution+MSBuild+SVN+NUnit+NUnitReport的更多相关文章

  1. CCNET+MSBuild+SVN实时构建的优化总结

    本文不是介绍如何使用CCNET+MSBuild+SVN构建自动编译系统,相关的内容可以从很多地方获取,可以再园子里搜一下. 随着我们的SVN库日益壮大,容量达到10G,几十G 甚至更大时,我们发现自动 ...

  2. Jenkins配置MSBuild实现自动部署(MSBuild+SVN/Subversion+FTP+BAT)

    所要用到的主要插件: [MSBuild Plugin] 具体操作: 1.配置MSBuild的版本 [系统管理]->[Global Tool Configuration]->[MSBuild ...

  3. Jenkins+MSbuild+SVN实现dotnet持续集成 快速搭建持续集成环境

    Jenkins是一个可扩展的持续集成引擎,Jenkins非常易于安装和配置,简单易用,下面开始搭建dotnet持续集成环境 一.准备工作 1.系统管理-->管理插件-->可选插件中找到MS ...

  4. (持续集成)win7上部署Jenkins+MSBuild+Svn+SonarQube+SonarQube Scanner for MSBuild (第二发)

    这一篇进入实战,走起.... 登录jenkins,如下图 点击上图中的“新建”按钮,进入下图 输入项目名称,选择“构建一个自由风格的软件项目”即可,点击“ok”,跳转到下图 svn源代码管理(选择代码 ...

  5. Jenkins+MSbuild+SVN实现快速搭建.net持续集成环境(构建、编辑、部署到服务器)

    Jenkins是一个可扩展的持续集成引擎,Jenkins非常易于安装和配置,简单易用,下面开始搭建.net持续集成环境 Jenkins和SVN安装这里就不介绍了 一.准备工作 1.Jenkins中系统 ...

  6. web前端学习(三)css学习笔记部分(8)-- SVN的介绍和应用、CSS动画效果、CSS3布局属性全接触

    15.SVN的介绍和应用 15.1.SVN的介绍和应用课程概要 将代码进行集中管理,有版本号的进行迭代,方便集体工作的build流程 15.2.SVN的介绍 SVN是Subversion的简称,是一个 ...

  7. CCNET+MSBuild+SVN实现每日构建

    最近开始将源代码迁移到SVN,于是便考虑到如何从SVN定期获取源码,自动编译并部署以减轻工作量并提高工作效率.通过多方搜集资料并进行研究,基本实现了这个功能.对于每日构建的概念就不具体展开了,可以在各 ...

  8. [学习笔记]坚果云网盘,SVN异地代码管理

    SVN的好处不必多说了.但是如果希望有一份自己的用来学习和储备的代码仓库,那么能够异地同步是必不可少的了. 参考作者Mike_QSJ的文章,但是实际上做了很大的改动.一方面使用更常见的windows系 ...

  9. nant build

    http://stackoverflow.com/questions/700871/publish-webapplication-using-nant <target name="co ...

随机推荐

  1. 状态可以通过动画切换的按钮--第三方开源--TickPlusDrawable

    Android tickplusdrawable(TickPlusDrawable)在github上的项目主页是:https://github.com/flavienlaurent/tickplusd ...

  2. 电商、商城类APP常用标签"hot"--第三方开源--LabelView

    LabelView是在github上一个开源的标签库.其项目主页是:https://github.com/linger1216//labelview LabelView为一个TextView,Imag ...

  3. 关于js中立即执行的匿名函数写法

    /*最流行的写法*/ (function() { alert("run!") })(); /* !号可以有1~正无穷个,所以这一种就可以衍生无数种方式 */ !!!(functio ...

  4. SRF之数据字典

      框架提供数据字典的配置和显示的功能 字典以编码作为标识,用varchar(50)类型保存字典的编码.   字典的用法 1.在代码里边需要查询字典信息的 可用 Components.DataDict ...

  5. 安装SRILM

    参考博文:Ubuntu 64位系统下SRILM的配置详解 来源52nlp www.52nlp.cn 首先下载SRILM 解压缩到home即可 然后需要修改MakeFile文件: # SRILM = / ...

  6. [转载]--类unix系统如何初始化shell

    Shell的配置文件 当我们在linux中打开一个shell的时候,系统会读取相关的配置文件来初始化shell(其他unix-like OS也一样).配置文件包括以下这些: 1. 全局配置(对所有用户 ...

  7. .NET开源工作流RoadFlow-流程设计-流程步骤设置-按钮设置

    按钮设置是配置当前步骤的处理者可以执行哪些操作,每个按钮都有对应的执行脚本(javascript脚本). 从左边的按钮列表中选择当前步骤需要的按钮. 注意:如果是流程最后一步则要配置完成按钮而不是发送 ...

  8. Erlang generic standard behaviours -- gen_server module

    在分析完gen module (http://www.cnblogs.com/--00/p/4271386.html)之后,就可以开始进入gen_server 的主体module 了.gen_serv ...

  9. NSKeyValueObserving(KVO)

    NSKeyValueObserving非正式协议定义了一种机制,它允许对象去监听其它对象的某个属性的修改. 我们可以监听一个对象的属性,包括简单属性,一对一的关系,和一对多的关系.一对多关系的监听者会 ...

  10. MVC模式中路由如何生成URL

    路由有必要的参数吗 在MVC设计模式中,一个比较重要的步骤是浏览器发送的请求如何生成相应的URL,交给服务器去实例化相应的控制器类然后调用相应的控制器类的对应方法,返回视图给用户.这个流程细说起来比较 ...