代码改变世界

NAnt常见问题

2012-08-01 16:14  JustRun  阅读(...)  评论(... 编辑 收藏

1. 如何在NAnt中执行批处理

<exec program="path.bat">
</exec>

这个是调用当前路径下的path.bat批处理文件。

2. 如何在NAnt中调用svn获取源代码

<exec program="svn" basedir="${svnpath}">
            <arg value="export"/>
            <arg value="${svnurl}"/>
            <arg value="${sourcepath}"/>
</exec>

basedir是svn.exe所在的目录, svnurl是svn服务器地址, sourcepath是取全代码的存储位置

3. NAnt如何编译项目

使用msbuild

<msbuild project="${sourcepath}\BackOfficeAdministrationCore\BackOfficeAdministrationCore.csproj">
           <property name="Configuration" value="Release"/>
           <property name="Platform" value="x86"/>
           <arg value="/noconlog"/> <!--不在控制台输出日志-->
           <arg value="/l:FileLogger,Microsoft.Build.Engine;logfile=${currentpath}\public_web_site.log"/><!--编译过程的输出日志放到这个文件下-->
</msbuild>

project可以是project文件,也可以是solution文件

使用devenv

有些项目如.vdproj安装项目和website目录编译,msbuild就没有办法(如果可以用msbuild, 麻烦留言给我)

这些项目需要用到devenv, 其实就是我们的visual studio.

<exec program="devenv">
           <arg value="${sourcepath}\Console.sln"/>
           <arg value="/build"/>
           <arg value="Release|x86"/>
           <arg value="/project"/>
           <arg value="Setup"/>
           <arg value="/out"/>
           <arg value="${currentpath}\Build.log"/>
</exec>

这个是编译Console solution下的Setup project, 也可以直接编译整个solution

<exec program="devenv" failonerror="false">
           <arg value="${sourcepath}\Setup.sln"/>
           <arg value="/build"/>
           <arg value="Release|x86"/>
           <arg value="/out"/>
           <arg value="${currentpath}\Build.log"/>
</exec>

4. NAnt如何发布网站

使用aspnet_compiler命令,发布asp.net网站

<exec program="aspnet_compiler">
            <arg value="-p"/>
            <arg value="${sourcepath}\BackOfficeAdministration"/>
            <arg value="-v"/>
            <arg value="/"/>
            <arg value="${sourcepath}\PrecompiledWeb\BackOfficeAdministration"/>
            <arg value="-u"/>
            <arg value="-fixednames"/>
            <arg value="-d"/>
            <arg value="-errorstack"/>
</exec>

5. NAnt如何运行单元测试, 并生成html测试报告

     

 <nunit2 failonerror="false">
   <formatter type="Xml" usefile="true" extension=".xml" outputdir="${currentpath}" />
      <test assemblyname="${sourcepath}\BackOfficeLayerTests\bin\Debug\BackOfficeLayerTests.dll" >
         <references>
            <include name="${thirdparty}\NUnit\lib\nunit.framework.dll" />
          </references>
       </test>
 </nunit2>
 
 <nunit2report todir="${currentpath}\NUnitReport.html" >
 <fileset>
   <include name="${currentpath}\*results.xml" />
 </fileset>
 </nunit2report>