Summary
Executes an alternate set of task or type definition depending on conditions that are individually set on each group.
- Assembly
- NAnt
.Core .dll - Namespace
- NAnt
.Core .Tasks - Interfaces
- Base Types
Syntax
[TaskName("choose")]
public class ChooseTask : Task, IConditional
Examples
Execute alternate set of tasks depending on the configuration being built.
<choose>
<when test="${build.config == 'Debug'}">
<!-- compile app in debug configuration -->
...
</when>
<when test="${build.config == 'Release'}">
<!-- compile app in release configuration -->
...
</when>
<otherwise>
<fail>Build configuration '${build.config}' is not supported!</fail>
</otherwise>
</choose>
Define a sources
patternset holding an alternate set of patterns
depending on the configuration being built.
<choose>
<when test="${build.config == 'Debug'}">
<patternset id="sources">
<include name="**/*.cs" />
</patternset>
</when>
<when test="${build.config == 'Release'}">
<patternset id="sources">
<include name="**/*.cs" />
<exclude name="**/Instrumentation/*.cs" />
</patternset>
</when>
<otherwise>
<fail>Build configuration '${build.config}' is not supported!</fail>
</otherwise>
</choose>
Remarks
The NAnt.Core.Tasks.ChooseTask
selects one among a number of possible
alternatives. It consists of a sequence of <when>
elements
followed by an optional <otherwise>
element.
Each <when>
element has a single attribute, test, which
specifies an expression. The content of the <when>
and
<otherwise>
elements is a set of nested tasks.
The content of the first, and only the first, <when>
element whose test is true
is executed. If no
<when>
element is true
, the
content of the <otherwise>
element is executed.
If no <when>
element is true
, and no
<otherwise>
element is present, nothing is done.
Attributes
Type | Description |
---|---|
TaskNameAttribute | Indicates that class should be treated as a task. |
Properties
Name | Value | Summary |
---|---|---|
CustomXmlProcessing | bool |
Gets a value indicating whether the element is performing additional
processing using the
NAnt.Core.Element.XmlNode that was used to
initialize the element.
Inherited from Element
|
FailOnError | bool |
Determines if task failure stops the build, or is just reported.
The default is
true .
Inherited from Task
|
IfDefined | bool |
If
true then the task will be executed; otherwise,
skipped. The default is true .
Inherited from Task
|
Location | Location |
Gets or sets the location in the build file where the element is
defined.
Inherited from Element
|
LogPrefix | string |
The prefix used when sending messages to the log.
Inherited from Task
|
Name | string |
The name of the task.
Inherited from Task
|
NamespaceManager | XmlNamespaceManager |
Gets or sets the
System.Xml.XmlNamespaceManager .
Inherited from Element
|
Parent | Object |
Gets or sets the parent of the element.
Inherited from Element
|
Project | Project |
Gets or sets the
NAnt.Core.Element.Project to which this element belongs.
Inherited from Element
|
Properties | PropertyDictionary |
Gets the properties local to this
NAnt.Core.Element and the
NAnt.Core.Element.Project .
Inherited from Element
|
Threshold | Level |
Gets or sets the log threshold for this
NAnt.Core.Task . By
default the threshold of a task is NAnt.Core.Level.Debug ,
causing no messages to be filtered in the task itself.
Inherited from Task
|
UnlessDefined | bool |
Opposite of
NAnt.Core.Task.IfDefined . If false
then the task will be executed; otherwise, skipped. The default is
false .
Inherited from Task
|
Verbose | bool |
Determines whether the task should report detailed build log messages.
The default is
false .
Inherited from Task
|
XmlNode | XmlNode |
Gets or sets the XML node of the element.
Inherited from Element
|
Methods
Name | Value | Summary |
---|---|---|
AddCondition |
void |
One or more alternative sets of tasks to execute.
|
AddFallback |
void |
The set of tasks to execute if none of the
NAnt.Core.Tasks.ChooseTask.When
elements are true .
|
CopyTo |
void |
Copies all instance data of the
NAnt.Core.Element to a given
NAnt.Core.Element .
Inherited from Element
|
Execute |
void |
Executes the task unless it is skipped.
Inherited from Task
|
ExecuteTask |
void |
Executes the task.
|
Get |
XmlNode |
Locates the XML node for the specified attribute in either the
configuration section of the extension assembly or the.project.
Inherited from Task
|
Get |
XmlNode |
Inherited from Element
|
GetLocation |
Location |
Retrieves the location in the build file where the element is
defined.
Inherited from Element
|
Initialize |
void |
Initializes the task.
Inherited from Task
|
Initialize |
void |
Performs default initialization.
Inherited from Element
|
Initialize |
Element |
Initializes the build element.
Inherited from Element
static
|
InitializeElement |
void |
Derived classes should override to this method to provide extra
initialization and validation not covered by the base class.
Inherited from Element
|
InitializeTask |
void |
Initializes the task.
Inherited from Task
|
Initialize |
void |
Initializes the configuration of the task using configuration
settings retrieved from the NAnt configuration file.
Inherited from Task
|
InitializeXml |
void |
Initializes all build attributes and child elements.
Inherited from Element
|
IsLogEnabledFor |
bool |
Determines whether build output is enabled for the given
NAnt.Core.Level .
Inherited from Task
|
Log |
void |
Logs a message with the given priority.
Inherited from Task
|
Log |
void |
Logs a formatted message with the given priority.
Inherited from Task
|