Task Block 类型:
- Build Publisher
- Email Publisher
- Executable Task
- File Merge Task
- FinalBuilder Task
- ForceBuildPublisher
- Modification Writer Task
- MsBuild Task
- NAnt Task
- Null Task
- NUnit Task
- Statistics Publisher
- Visual Studio Task
- Xml Log Publisher
任务是顺序执行的,这里我只提Build Publisher,NUnit Task,MsBuild Task,Executable Task,Email Publisher
1.Build Publisher
编译成功后,如何发布
 <buildpublisher>
<buildpublisher> <sourceDir>C:\myprojects\project1</sourceDir>
     <sourceDir>C:\myprojects\project1</sourceDir> <publishDir>\\myfileserver\project1</publishDir>
     <publishDir>\\myfileserver\project1</publishDir> <useLabelSubDirectory>false</useLabelSubDirectory>
     <useLabelSubDirectory>false</useLabelSubDirectory> </buildpublisher>
</buildpublisher>sourceDir:源文件地址
publishDir:要发布到的地址
<useLabelSubDirectory>:是否每一个版本根据label标签创建一个字目录里并把发布内容放进去
2.MsBuild Task
 <msbuild>
<msbuild>  <executable>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe</executable>
 <workingDirectory>C:\dev\ccnet</workingDirectory>
      <workingDirectory>C:\dev\ccnet</workingDirectory> <projectFile>CCNet.sln</projectFile>
      <projectFile>CCNet.sln</projectFile> <buildArgs>/noconsolelogger /p:Configuration=Debug /v:diag</buildArgs>
      <buildArgs>/noconsolelogger /p:Configuration=Debug /v:diag</buildArgs> <targets>Build;Test</targets>
      <targets>Build;Test</targets> <timeout>15</timeout>
      <timeout>15</timeout> <logger>C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
      <logger>C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger> </msbuild>
</msbuild>这个不用解释了,但是ThoughtWorks.CruiseControl.MsBuild.dll是个单独组件,前面我提过
3.NUnit Task
编译后运行测试
 <tasks>
<tasks> <nunit><path>D:\dev\ccnet\ccnet\tools\nunit\nunit-console.exe</path>
        <nunit><path>D:\dev\ccnet\ccnet\tools\nunit\nunit-console.exe</path> <assemblies>
            <assemblies><assembly>D:\dev\Refactoring\bin\Debug\Refactoring.exe</assembly>
 <assembly>D:\dev\Refactoring\bin\Debug\Refactoring.Core.dll</assembly>
                 <assembly>D:\dev\Refactoring\bin\Debug\Refactoring.Core.dll</assembly> </assemblies>
            </assemblies> </nunit>
        </nunit> </tasks>
</tasks>4. Executable Task
执行一个程序
示例1:<exec executable="c:\projects\myproject\build.bat"/>
示例2:
 <exec>
<exec> <executable>make</executable>
    <executable>make</executable><baseDirectory>D:\dev\MyProject</baseDirectory>
 <buildArgs>all</buildArgs>
    <buildArgs>all</buildArgs> <buildTimeoutSeconds>10</buildTimeoutSeconds>
    <buildTimeoutSeconds>10</buildTimeoutSeconds> </exec>
</exec>你可以在这里加载任何你需要执行的程序,比如Fxcop等
5. Email Publisher
邮件通知编译报告
 <email from="buildmaster@mycompany.com" mailhost="smtp.mycompany.com"
<email from="buildmaster@mycompany.com" mailhost="smtp.mycompany.com" 
 mailhostUsername="smtpuser" mailhostPassword="smtppassword" includeDetails="TRUE">
          mailhostUsername="smtpuser" mailhostPassword="smtppassword" includeDetails="TRUE"> <users>
    <users> <user name="BuildGuru" group="buildmaster" address="buildguru@mycompany.com"/>
        <user name="BuildGuru" group="buildmaster" address="buildguru@mycompany.com"/> <user name="JoeDeveloper" group="developers" address="joedeveloper@thoughtworks.com"/>
        <user name="JoeDeveloper" group="developers" address="joedeveloper@thoughtworks.com"/> </users>
    </users> <groups>
    <groups> <group name="developers" notification="change"/>
        <group name="developers" notification="change"/> <group name="buildmaster" notification="always"/>
        <group name="buildmaster" notification="always"/> </groups>
    </groups> </email>
</email>notification:
