C# Класс NAnt.Core.Project

Показать файл Открыть проект Примеры использования класса

Private Properties

Свойство Тип Описание
ConfigurePlatformProperties void
CreateCircularException BuildException
CtorHelper void
GetConfigurationNode System.Xml.XmlNode
GetFrameworks NAnt.Core.FrameworkInfo[]
InitializeProjectDocument void
LoadBuildFile System.Xml.XmlDocument
Project System
Project System
TopologicalTargetSort void
UpdateTargetFrameworkProperties void

Открытые методы

Метод Описание
AttachBuildListeners ( BuildListenerCollection listeners ) : void

Attaches the specified build listeners to the Project.

The currently attached IBuildListener instances will be detached before the new IBuildListener instances are attached.

CreateDataTypeBase ( XmlNode elementNode ) : DataTypeBase
CreateDefaultLogger ( ) : void

Creates the default IBuildLogger and attaches it to the Project.

CreateTask ( XmlNode taskNode ) : NAnt.Core.Task

Creates a new from the given XmlNode.

CreateTask ( XmlNode taskNode, Target target ) : NAnt.Core.Task

Creates a new Task from the given XmlNode within a Target.

DetachBuildListeners ( ) : void

Detaches the currently attached IBuildListener instances from the Project.

Execute ( ) : void

Executes the default target.

No top level error handling is done. Any BuildException will be passed onto the caller.

Execute ( string targetName ) : void

Executes a specific target, and its dependencies.

Global tasks are not executed.

Execute ( string targetName, bool forceDependencies ) : void

Executes a specific target.

Global tasks are not executed.

ExpandProperties ( string input, Location location ) : string

Expands a string from known properties.

GetFullPath ( string path ) : string

Combines the specified path with the BaseDirectory of the Project to form a full path to file or directory.

GetLocation ( XmlNode node ) : Location

Returns the Location of the given node in an XML file loaded by NAnt.

The node must be from an XmlDocument that has been loaded by NAnt.

NAnt also does not process any of the following node types:

XmlNodeType.Whitespace XmlNodeType.EndElement XmlNodeType.ProcessingInstruction XmlNodeType.XmlDeclaration XmlNodeType.DocumentType

As a result, no location information is available for these nodes.

Indent ( ) : void

Increases the IndentationLevel of the Project.

Log ( Level messageLevel, string message ) : void

Writes a Project level message to the build log with the given Level.

Log ( Target target, Level messageLevel, string message ) : void

Writes a Target level message to the build log with the given Level.

Log ( NAnt.Core.Task task, Level messageLevel, string message ) : void

Writes a Task task level message to the build log with the given Level.

OnBuildFinished ( object sender, BuildEventArgs e ) : void

Dispatches a BuildFinished event to the build listeners for this Project.

OnBuildStarted ( object sender, BuildEventArgs e ) : void

Dispatches a BuildStarted event to the build listeners for this Project.

OnMessageLogged ( BuildEventArgs e ) : void

Dispatches a MessageLogged event to the build listeners for this Project.

OnTargetFinished ( object sender, BuildEventArgs e ) : void

Dispatches a TargetFinished event to the build listeners for this Project.

OnTargetStarted ( object sender, BuildEventArgs e ) : void

Dispatches a TargetStarted event to the build listeners for this Project.

OnTaskFinished ( object sender, BuildEventArgs e ) : void

Dispatches the TaskFinished event to the build listeners for this Project.

OnTaskStarted ( object sender, BuildEventArgs e ) : void

Dispatches a TaskStarted event to the build listeners for this Project.

Project ( XmlDocument doc, Level threshold, int indentLevel ) : System

Initializes a new Project class with the given document, message threshold and indentation level.

Project ( XmlDocument doc, Level threshold, int indentLevel, XmlNode configurationNode ) : System

Initializes a new Project class with the given document, message threshold and indentation level, and using the specified XmlNode to load internal configuration settings.

This constructor is useful for developers using NAnt as a class library.

Project ( string uriOrFilePath, Level threshold, int indentLevel ) : System

Initializes a new Project class with the given source, message threshold and indentation level.

If the source is a uri of form 'file:///path' then use the path part.

Project ( string uriOrFilePath, Level threshold, int indentLevel, XmlNode configurationNode ) : System

Initializes a new Project class with the given source, message threshold and indentation level, and using the specified XmlNode to load internal configuration settings.

If the source is a uri of form 'file:///path' then use the path part.

Run ( ) : bool

Executes the default target and wraps in error handling and time stamping.

TopologicalTargetSort ( string root, TargetCollection targets ) : TargetCollection

Topologically sorts a set of targets.

Unindent ( ) : void

Decreases the IndentationLevel of the Project.

Приватные методы

Метод Описание
ConfigurePlatformProperties ( ) : void

Configures the platform properties for the current platform.

CreateCircularException ( string end, Stack stack ) : BuildException

Builds an appropriate exception detailing a specified circular dependency.

CtorHelper ( XmlDocument doc, Level threshold, int indentLevel, Optimizations optimization ) : void

Inits stuff:

TypeFactory: Calls Initialize and AddProject

Log.IndentSize set to 12

Project properties are initialized ("nant.* stuff set")

NAnt Props: nant.filename nant.version nant.location nant.project.name nant.project.buildfile (if doc has baseuri) nant.project.basedir nant.project.default = defaultTarget

GetConfigurationNode ( ) : XmlNode
GetFrameworks ( FrameworkTypes types ) : NAnt.Core.FrameworkInfo[]

Gets the list of supported frameworks filtered by the specified FrameworkTypes parameter.

InitializeProjectDocument ( XmlDocument doc ) : void

This method is only meant to be used by the Project class and T:NAnt.Core.Tasks.IncludeTask.

LoadBuildFile ( string uriOrFilePath ) : XmlDocument

Creates a new XmlDocument based on the project definition.

Project ( XmlDocument doc ) : System

Initializes a Project with Threshold set to Level.None, and IndentationLevel set to 0.

Optimized for framework initialization projects, by skipping automatic discovery of extension assemblies and framework configuration.

Project ( string uriOrFilePath, Project parent ) : System

Initializes a Project as subproject of the specified Project.

Optimized for framework initialization projects, by skipping automatic discovery of extension assemblies and framework configuration.

TopologicalTargetSort ( string root, TargetCollection targets, Hashtable state, Stack visiting, TargetCollection executeTargets ) : void

Performs a single step in a recursive depth-first-search traversal of the target dependency tree.

The current target is first set to the "visiting" state, and pushed onto the "visiting" stack.

An exception is then thrown if any child of the current node is in the visiting state, as that implies a circular dependency. The exception contains details of the cycle, using elements of the "visiting" stack.

If any child has not already been "visited", this method is called recursively on it.

The current target is then added to the ordered list of targets. Note that this is performed after the children have been visited in order to get the correct order. The current target is set to the "visited" state.

By the time this method returns, the ordered list contains the sequence of targets up to and including the current target.

UpdateTargetFrameworkProperties ( ) : void

Updates dependent properties when the TargetFramework is set.

Описание методов

AttachBuildListeners() публичный Метод

Attaches the specified build listeners to the Project.
The currently attached IBuildListener instances will be detached before the new IBuildListener instances are attached.
public AttachBuildListeners ( BuildListenerCollection listeners ) : void
listeners BuildListenerCollection The instances to attach to the .
Результат void

CreateDataTypeBase() публичный Метод

public CreateDataTypeBase ( XmlNode elementNode ) : DataTypeBase
elementNode System.Xml.XmlNode
Результат DataTypeBase

CreateDefaultLogger() публичный Метод

Creates the default IBuildLogger and attaches it to the Project.
public CreateDefaultLogger ( ) : void
Результат void

CreateTask() публичный Метод

Creates a new from the given XmlNode.
public CreateTask ( XmlNode taskNode ) : NAnt.Core.Task
taskNode System.Xml.XmlNode The definition.
Результат NAnt.Core.Task

CreateTask() публичный Метод

Creates a new Task from the given XmlNode within a Target.
public CreateTask ( XmlNode taskNode, Target target ) : NAnt.Core.Task
taskNode System.Xml.XmlNode The definition.
target Target The owner .
Результат NAnt.Core.Task

DetachBuildListeners() публичный Метод

Detaches the currently attached IBuildListener instances from the Project.
public DetachBuildListeners ( ) : void
Результат void

Execute() публичный Метод

Executes the default target.
No top level error handling is done. Any BuildException will be passed onto the caller.
public Execute ( ) : void
Результат void

Execute() публичный Метод

Executes a specific target, and its dependencies.
Global tasks are not executed.
public Execute ( string targetName ) : void
targetName string The name of the target to execute.
Результат void

Execute() публичный Метод

Executes a specific target.
Global tasks are not executed.
public Execute ( string targetName, bool forceDependencies ) : void
targetName string The name of the target to execute.
forceDependencies bool Whether dependencies should be forced to execute
Результат void

ExpandProperties() публичный Метод

Expands a string from known properties.
public ExpandProperties ( string input, Location location ) : string
input string The with replacement tokens.
location Location The location in the build file. Used to throw more accurate exceptions.
Результат string

GetFullPath() публичный Метод

Combines the specified path with the BaseDirectory of the Project to form a full path to file or directory.
public GetFullPath ( string path ) : string
path string The relative or absolute path.
Результат string

GetLocation() публичный Метод

Returns the Location of the given node in an XML file loaded by NAnt.

The node must be from an XmlDocument that has been loaded by NAnt.

NAnt also does not process any of the following node types:

XmlNodeType.Whitespace XmlNodeType.EndElement XmlNodeType.ProcessingInstruction XmlNodeType.XmlDeclaration XmlNodeType.DocumentType

As a result, no location information is available for these nodes.

/// is from an XML file that was not loaded by NAnt. /// -or /// was not processed by NAnt (eg. an XML declaration). ///
public GetLocation ( XmlNode node ) : Location
node System.Xml.XmlNode The to get the for.
Результат Location

Indent() публичный Метод

Increases the IndentationLevel of the Project.
public Indent ( ) : void
Результат void

Log() публичный Метод

Writes a Project level message to the build log with the given Level.
public Log ( Level messageLevel, string message ) : void
messageLevel Level The to log at.
message string The message to log.
Результат void

Log() публичный Метод

Writes a Target level message to the build log with the given Level.
public Log ( Target target, Level messageLevel, string message ) : void
target Target The from which the message orignated.
messageLevel Level The level to log at.
message string The message to log.
Результат void

Log() публичный Метод

Writes a Task task level message to the build log with the given Level.
public Log ( NAnt.Core.Task task, Level messageLevel, string message ) : void
task NAnt.Core.Task The from which the message originated.
messageLevel Level The to log at.
message string The message to log.
Результат void

OnBuildFinished() публичный Метод

Dispatches a BuildFinished event to the build listeners for this Project.
public OnBuildFinished ( object sender, BuildEventArgs e ) : void
sender object The source of the event.
e BuildEventArgs A that contains the event data.
Результат void

OnBuildStarted() публичный Метод

Dispatches a BuildStarted event to the build listeners for this Project.
public OnBuildStarted ( object sender, BuildEventArgs e ) : void
sender object The source of the event.
e BuildEventArgs A that contains the event data.
Результат void

OnMessageLogged() публичный Метод

Dispatches a MessageLogged event to the build listeners for this Project.
public OnMessageLogged ( BuildEventArgs e ) : void
e BuildEventArgs A that contains the event data.
Результат void

OnTargetFinished() публичный Метод

Dispatches a TargetFinished event to the build listeners for this Project.
public OnTargetFinished ( object sender, BuildEventArgs e ) : void
sender object The source of the event.
e BuildEventArgs A that contains the event data.
Результат void

OnTargetStarted() публичный Метод

Dispatches a TargetStarted event to the build listeners for this Project.
public OnTargetStarted ( object sender, BuildEventArgs e ) : void
sender object The source of the event.
e BuildEventArgs A that contains the event data.
Результат void

OnTaskFinished() публичный Метод

Dispatches the TaskFinished event to the build listeners for this Project.
public OnTaskFinished ( object sender, BuildEventArgs e ) : void
sender object The source of the event.
e BuildEventArgs A that contains the event data.
Результат void

OnTaskStarted() публичный Метод

Dispatches a TaskStarted event to the build listeners for this Project.
public OnTaskStarted ( object sender, BuildEventArgs e ) : void
sender object The source of the event.
e BuildEventArgs A that contains the event data.
Результат void

Project() публичный Метод

Initializes a new Project class with the given document, message threshold and indentation level.
public Project ( XmlDocument doc, Level threshold, int indentLevel ) : System
doc System.Xml.XmlDocument Any valid build format will do.
threshold Level The message threshold.
indentLevel int The project indentation level.
Результат System

Project() публичный Метод

Initializes a new Project class with the given document, message threshold and indentation level, and using the specified XmlNode to load internal configuration settings.
This constructor is useful for developers using NAnt as a class library.
public Project ( XmlDocument doc, Level threshold, int indentLevel, XmlNode configurationNode ) : System
doc System.Xml.XmlDocument Any valid build format will do.
threshold Level The message threshold.
indentLevel int The project indentation level.
configurationNode System.Xml.XmlNode The NAnt should use to initialize configuration settings.
Результат System

Project() публичный Метод

Initializes a new Project class with the given source, message threshold and indentation level.
If the source is a uri of form 'file:///path' then use the path part.
public Project ( string uriOrFilePath, Level threshold, int indentLevel ) : System
uriOrFilePath string /// The full path to the build file. /// This can be of any form that accepts. ///
threshold Level The message threshold.
indentLevel int The project indentation level.
Результат System

Project() публичный Метод

Initializes a new Project class with the given source, message threshold and indentation level, and using the specified XmlNode to load internal configuration settings.
If the source is a uri of form 'file:///path' then use the path part.
is .
public Project ( string uriOrFilePath, Level threshold, int indentLevel, XmlNode configurationNode ) : System
uriOrFilePath string /// The full path to the build file. /// This can be of any form that accepts. ///
threshold Level The message threshold.
indentLevel int The project indentation level.
configurationNode System.Xml.XmlNode The NAnt should use to initialize configuration settings.
Результат System

Run() публичный Метод

Executes the default target and wraps in error handling and time stamping.
public Run ( ) : bool
Результат bool

TopologicalTargetSort() публичный Метод

Topologically sorts a set of targets.
There is a cyclic dependecy among the targets, or a named target does not exist.
public TopologicalTargetSort ( string root, TargetCollection targets ) : TargetCollection
root string The name of the root target. The sort is created in such a way that the sequence of targets up to the root target is the minimum possible such sequence. Must not be .
targets TargetCollection A collection of instances.
Результат TargetCollection

Unindent() публичный Метод

Decreases the IndentationLevel of the Project.
public Unindent ( ) : void
Результат void