TeamCity supports NAnt starting from version 0.85.

The TeamCity NAnt runner requires .Net Framework or Mono installed on the build agent.

MSBuild Task for NAnt

TeamCity NAnt runner includes a task called msbuild that allows NAnt to start MSBuild scripts. TeamCity msbuild task for NAnt has the same set of attributes as the NAntContrib package msbuild task. The MSBuild build processes started by NAnt will behave exactly as if they were launched by TeamCity MSBuild/SLN2005 build runner (i.e. NUnit and/or NUnitTeamCity MSBuild tasks will be added to build scripts and logs and error reports will be sent directly to the build server).

msbuild task for NAnt makes all build configuration system properties available inside MSBuild script. Note, all property names will have '.' replaced with '_'.
To disable this, set false to set-teamcity-properties attribute of the task.

By default, NAnt msbuild task checks for current value of NAnt target-framework property to select MSBuild runtime version.
This parameter could be overriden by setting teamcity_dotnet_tools_version project property with required .NET Framework version, i.e. "4.0".

  <!-- this property enables MSBuild 4.0 -->
  <property name="teamcity_dotnet_tools_version" value="4.0"/>
  <msbuild project="SimpleEcho.v40.proj">

To pass properties to MSBuild, use the property tag instead of explicit properties definition in the command line.

<nunit2> Task for NAnt

To test all of the assemblies without halting on first failed test please use:

<target name="build">
       <nunit2 verbose="true" haltonfailure="false" failonerror="true" failonfailureatend="true">
        <formatter type="Plain" />
        <test haltonfailure="false">
            <include name="dll1.dll" />
            <include name="dll2.dll" />

'failonfailureatend' attribute is not defined in the original NUnit2 task from NAnt. Note that this attribute will be ignored if the 'haltonfailure' attribute is set to 'true' for either the nunit2 element or the test element.

Below you can find reference information about NAnt Build Runner fields.

General Options



Path to a build file

Specify path relative to the Build Checkout Directory.

Build file content

Select the option, if you want to use a different build script than the one listed in the settings of the build file. When the option is enabled, you have to type the build script in the text area.


Specify the names of build targets defined by the build script, separated by spaces. The available targets can be viewed in the Web UI by clicking the icon next to the field and added by checking the appropriate boxes.

Working directory

Specify the path to the Build Working Directory. By default, the build working directory is set to the same path as the build checkout directory.

NAnt home

Enter a path to the NAnt.exe.

Here you can specify an absolute path to the NAnt.exe file on the agent, or a path relative to the checkout directory. Such relative path allows you to provide particular NAnt.exe file to run a build of the particular build configuration.

Target framework

Sets -targetframework: option to 'NAnt' and generates appropriate agent requirements (mono-2.0 target framework will require Mono system property, net-2.0DotNetFramework2.0 property, and so on). Selecting unsupported in TeamCity framework (sscli-1.0, netcf-1.0, netcf-2.0) won't impose any agent requirements.

This option has no effect on framework which used to run NAnt.exe. NAnt.exe will be launched as ordinary exe file if .NET framework was found, and through mono executable, if not.

Command line parameters

Specify any additional parameters for NAnt.exe

TeamCity passes automatically to NAnt all defined system properties, so you do not need to specify all of the properties here via '-D' option.

Reduce test failure feedback time

Use following option to instruct TeamCity to run some tests before others.

Run recently failed tests first

If checked, in the first place TeamCity will run tests failed in previous finished or running builds as well as tests having high failure rate (a so called blinking tests)

Code Coverage

To learn about configuring code coverage options, please refer to the Configuring .NET Code Coverage page.

See also:

Concepts: Build Runner | Build Checkout Directory | Build Working Directory
Administrator's Guide: Configuring Build Parameters