天天看點

NAnt與MSBuild使用(一)

原文位址:http://chenglong01.blog.sohu.com/124044452.html

1.安裝配置好NAnt等。

2.在D:\cl\NAnt\Test下編寫NAt.bat批處理檔案

@echo off 

"D:\cl\NAnt\tools\NAnt0.86\Binary\nant-0.86-beta1\bin\NAnt.exe" %*

3.建立default.build檔案,檔案内容如下:

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

<project name="Test" default="run" basedir=".">

     <property name="Solution1.Filename" value="D:\cl\NAnt\Test\Solution1\Solution1.sln"/>

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

     <property name="Build1.OutputFolder" value="D:\cl\NAnt\Test\result\"/>

     <property name="Solution2.Filename" value="D:\cl\NAnt\Test\Solution2\Solution2.sln"/>

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

     <property name="Build2.OutputFolder" value="D:\cl\NAnt\Test\result\"/>      

     <target name="run">

         <!--<call target="HelloNant"/>-->

         <!--<call target="HelloWorld"/>-->

         <!--<call target="implement"/>-->

         <call target="build1"/>

         <call target="build2"/>

     </target>

  <target name="build1">

    <solution solutionfile="${Solution1.Filename}" outputdir="${Build1.OutputFolder}test" configuration="${Solution1.Configuration}"/>

  </target>

     <target name="build2">

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

     </target>

     <target name="build">

         <mkdir dir="bin"/>

         <csc target="exe" output="bin\HelloWorld.exe">

              <sources>

                   <includes name="HelloWorld.cs"/>

              </sources>        

         </csc>

     </target>

     <target name="implement" depends="build">

         <exec program="bin\helloWorld.exe"/>

     </target>

     <target name="clean">

         <delete dir="bin" failοnerrοr="false"/>

     </target>

     <target name="HelloNant">

         <echo message="Hello Nant"/>

</target>

     <target name="HelloWorld">

         <echo message="Hello World"/>

     </target>

</project>

4.當然還有HelloWord.cs檔案

5.在指令行運作NAnt會報錯:

 在指令行裡運作nant,如下圖

NAnt與MSBuild使用(一)

6.原因:NAnt不支援.NET FrameWork3.5,采用MSBuild編譯,指令如下:

C:\Windows\Microsoft.NET\Framework3.5\V3.5\MSBuild.exe "D:\cl\NAnt\Test\Solution1\Solution1.sln" /t:Build /p:Configuration=Debug

執行成功,如下圖:

NAnt與MSBuild使用(一)

7.建立批處理檔案MsBuild.bat,内容如下

@echo off

C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe "D:\cl\NAnt\Test\Solution1\Solution1.sln" /t:Build /p:Configuration=Debug

C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe "D:\cl\NAnt\Test\Solution2\Solution2.sln" /t:Build /p:Configuration=Debug

8.更改default.build,如下:

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

<project name="Test" default="run" basedir=".">

     <property name="Solution1.Filename" value="D:\cl\NAnt\Test\Solution1\Solution1.sln"/>

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

     <property name="Build1.OutputFolder" value="D:\cl\NAnt\Test\result\"/>

     <property name="Solution2.Filename" value="D:\cl\NAnt\Test\Solution2\Solution2.sln"/>

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

     <property name="Build2.OutputFolder" value="D:\cl\NAnt\Test\result\"/>      

     <target name="run">

        <exec program="msbuild.bat"/>

     </target>

  <target name="build1">

    <solution solutionfile="${Solution1.Filename}" outputdir="${Build1.OutputFolder}test" configuration="${Solution1.Configuration}"/>

  </target>

     <target name="build2">

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

     </target>

</project>

其實可以更簡單點,如下:

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

<project name="Test" default="run" basedir=".">

     <target name="run">

        <exec program="msbuild.bat"/>

     </target>

</project>

這就是NAnt調用MSBuild

繼續閱讀