From: <jer...@us...> - 2008-06-19 03:10:36
|
Revision: 124 http://structuremap.svn.sourceforge.net/structuremap/?rev=124&view=rev Author: jeremydmiller Date: 2008-06-18 20:10:34 -0700 (Wed, 18 Jun 2008) Log Message: ----------- updated NAnt Modified Paths: -------------- trunk/Source/StructureMap/Container.cs trunk/Source/StructureMap/Diagnostics/GraphLog.cs trunk/Source/StructureMap/Diagnostics/ValidationBuildSession.cs trunk/Source/StructureMap/Diagnostics/WhatDoIHaveWriter.cs trunk/Source/StructureMap/IContainer.cs trunk/Source/StructureMap/ObjectFactory.cs trunk/Source/StructureMap/Pipeline/Instance.cs trunk/Source/StructureMap/PipelineGraph.cs trunk/bin/Rhino.Mocks.dll trunk/bin/nant/NAnt.CompressionTasks.dll trunk/bin/nant/NAnt.CompressionTasks.xml trunk/bin/nant/NAnt.Core.dll trunk/bin/nant/NAnt.Core.xml trunk/bin/nant/NAnt.DotNetTasks.dll trunk/bin/nant/NAnt.DotNetTasks.xml trunk/bin/nant/NAnt.MSNetTasks.dll trunk/bin/nant/NAnt.MSNetTasks.xml trunk/bin/nant/NAnt.NUnit.dll trunk/bin/nant/NAnt.NUnit1Tasks.dll trunk/bin/nant/NAnt.NUnit2Tasks.dll trunk/bin/nant/NAnt.NUnit2Tasks.xml trunk/bin/nant/NAnt.SourceControlTasks.dll trunk/bin/nant/NAnt.SourceControlTasks.xml trunk/bin/nant/NAnt.VSNetTasks.dll trunk/bin/nant/NAnt.VSNetTasks.xml trunk/bin/nant/NAnt.VisualCppTasks.dll trunk/bin/nant/NAnt.VisualCppTasks.xml trunk/bin/nant/NAnt.Win32Tasks.dll trunk/bin/nant/NAnt.Win32Tasks.xml trunk/bin/nant/NAnt.exe trunk/bin/nant/NAnt.exe.config trunk/bin/nant/NAnt.xml trunk/bin/nant/NDoc.Documenter.NAnt.dll trunk/bin/nant/lib/mono/1.0/nunit.core.dll trunk/bin/nant/lib/mono/1.0/nunit.framework.dll trunk/bin/nant/lib/mono/1.0/nunit.util.dll trunk/bin/nant/lib/mono/2.0/nunit.core.dll trunk/bin/nant/lib/mono/2.0/nunit.framework.dll trunk/bin/nant/lib/mono/2.0/nunit.util.dll trunk/bin/nant/lib/net/1.0/nunit.core.dll trunk/bin/nant/lib/net/1.0/nunit.framework.dll trunk/bin/nant/lib/net/1.0/nunit.util.dll trunk/bin/nant/lib/net/1.1/nunit.core.dll trunk/bin/nant/lib/net/1.1/nunit.framework.dll trunk/bin/nant/lib/net/1.1/nunit.util.dll trunk/bin/nant/lib/net/2.0/nunit.core.dll trunk/bin/nant/lib/net/2.0/nunit.framework.dll trunk/bin/nant/lib/net/2.0/nunit.util.dll trunk/bin/nant/log4net.dll trunk/bin/nant/scvs.exe Added Paths: ----------- trunk/bin/nant/extensions/ trunk/bin/nant/extensions/common/ trunk/bin/nant/extensions/common/2.0/ trunk/bin/nant/extensions/common/2.0/NAnt.MSBuild.dll trunk/bin/nant/extensions/common/2.0/NAnt.MSBuild.xml trunk/bin/nant/lib/common/ trunk/bin/nant/lib/common/neutral/ trunk/bin/nant/lib/common/neutral/ICSharpCode.SharpCvsLib.Console.dll trunk/bin/nant/lib/common/neutral/ICSharpCode.SharpCvsLib.dll trunk/bin/nant/lib/common/neutral/ICSharpCode.SharpZipLib.dll trunk/bin/nant/lib/common/neutral/NUnitCore.dll Modified: trunk/Source/StructureMap/Container.cs =================================================================== --- trunk/Source/StructureMap/Container.cs 2008-06-16 02:12:53 UTC (rev 123) +++ trunk/Source/StructureMap/Container.cs 2008-06-19 03:10:34 UTC (rev 124) @@ -5,6 +5,7 @@ using System.Text; using StructureMap.Configuration.DSL; using StructureMap.Diagnostics; +using StructureMap.Exceptions; using StructureMap.Graph; using StructureMap.Interceptors; using StructureMap.Pipeline; @@ -280,6 +281,17 @@ return new ExplicitArgsExpression(this).With(argName); } + public void AssertConfigurationIsValid() + { + ValidationBuildSession session = new ValidationBuildSession(_pipelineGraph, _interceptorLibrary); + session.PerformValidations(); + + if (!session.Success) + { + throw new StructureMapConfigurationException(session.BuildErrorMessages()); + } + } + #endregion private IBuildSession withNewSession() Modified: trunk/Source/StructureMap/Diagnostics/GraphLog.cs =================================================================== --- trunk/Source/StructureMap/Diagnostics/GraphLog.cs 2008-06-16 02:12:53 UTC (rev 123) +++ trunk/Source/StructureMap/Diagnostics/GraphLog.cs 2008-06-19 03:10:34 UTC (rev 124) @@ -1,4 +1,5 @@ using System; +using System.Collections; using System.Collections.Generic; using System.IO; using System.Text; @@ -12,15 +13,22 @@ { private string _currentSource; private readonly List<Error> _errors = new List<Error>(); + private List<string> _sources = new List<string>(); public int ErrorCount { get { return _errors.Count; } } + public string[] Sources + { + get { return _sources.ToArray(); } + } + public void StartSource(string description) { _currentSource = description; + _sources.Add(description); } public void RegisterError(IDiagnosticInstance instance, int code, params object[] args) Modified: trunk/Source/StructureMap/Diagnostics/ValidationBuildSession.cs =================================================================== --- trunk/Source/StructureMap/Diagnostics/ValidationBuildSession.cs 2008-06-16 02:12:53 UTC (rev 123) +++ trunk/Source/StructureMap/Diagnostics/ValidationBuildSession.cs 2008-06-19 03:10:34 UTC (rev 124) @@ -107,6 +107,11 @@ } } + public void Source(string source) + { + throw new NotImplementedException(); + } + private void validate(Type pluginType, Instance instance, object builtObject) { MethodInfo[] methods = ValidationMethodAttribute.GetValidationMethods(builtObject.GetType()); Modified: trunk/Source/StructureMap/Diagnostics/WhatDoIHaveWriter.cs =================================================================== --- trunk/Source/StructureMap/Diagnostics/WhatDoIHaveWriter.cs 2008-06-16 02:12:53 UTC (rev 123) +++ trunk/Source/StructureMap/Diagnostics/WhatDoIHaveWriter.cs 2008-06-19 03:10:34 UTC (rev 124) @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.IO; using System.Text; using StructureMap.Graph; using StructureMap.Pipeline; @@ -20,19 +21,46 @@ public string GetText() { + StringBuilder sb = new StringBuilder(); + StringWriter writer = new StringWriter(sb); + + writeSources(writer); + writeContentsOfPluginTypes(writer); + + return sb.ToString(); + } + + private void writeContentsOfPluginTypes(StringWriter stringWriter) + { _writer = new TextReportWriter(3); _instances = new List<Instance>(); _writer.AddDivider('='); - _writer.AddText("PluginType", "Name", "Description"); + _writer.AddText("PluginType", "Name", "Description"); _graph.Visit(this); _writer.AddDivider('='); - return _writer.Write(); + _writer.Write(stringWriter); } + private void writeSources(StringWriter writer) + { + writer.WriteLine("==========================================================================================================="); + writer.WriteLine("Configuration Sources:"); + writer.WriteLine(); + + for (int i = 0; i < _graph.Log.Sources.Length; i++) + { + var source = _graph.Log.Sources[i]; + string message = (i.ToString() + ")").PadRight(5) + source; + writer.WriteLine(message); + } + + writer.WriteLine(); + } + void IPipelineGraphVisitor.PluginType(Type pluginType, Instance defaultInstance) { _writer.AddDivider('-'); @@ -68,5 +96,6 @@ _writer.AddText(contents); } + } } Modified: trunk/Source/StructureMap/IContainer.cs =================================================================== --- trunk/Source/StructureMap/IContainer.cs 2008-06-16 02:12:53 UTC (rev 123) +++ trunk/Source/StructureMap/IContainer.cs 2008-06-19 03:10:34 UTC (rev 124) @@ -66,5 +66,6 @@ ExplicitArgsExpression With<T>(T arg); IExplicitProperty With(string argName); + void AssertConfigurationIsValid(); } } \ No newline at end of file Modified: trunk/Source/StructureMap/ObjectFactory.cs =================================================================== --- trunk/Source/StructureMap/ObjectFactory.cs 2008-06-16 02:12:53 UTC (rev 123) +++ trunk/Source/StructureMap/ObjectFactory.cs 2008-06-19 03:10:34 UTC (rev 124) @@ -339,7 +339,10 @@ return manager.With(argName); } - + public static void AssertConfigurationIsValid() + { + manager.AssertConfigurationIsValid(); + } } Modified: trunk/Source/StructureMap/Pipeline/Instance.cs =================================================================== --- trunk/Source/StructureMap/Pipeline/Instance.cs 2008-06-16 02:12:53 UTC (rev 123) +++ trunk/Source/StructureMap/Pipeline/Instance.cs 2008-06-19 03:10:34 UTC (rev 124) @@ -1,4 +1,6 @@ using System; +using System.Collections.Generic; +using StructureMap.Configuration.DSL; using StructureMap.Diagnostics; using StructureMap.Graph; using StructureMap.Interceptors; @@ -164,4 +166,5 @@ return thisInstance; } } + } \ No newline at end of file Modified: trunk/Source/StructureMap/PipelineGraph.cs =================================================================== --- trunk/Source/StructureMap/PipelineGraph.cs 2008-06-16 02:12:53 UTC (rev 123) +++ trunk/Source/StructureMap/PipelineGraph.cs 2008-06-19 03:10:34 UTC (rev 124) @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using StructureMap.Diagnostics; using StructureMap.Graph; using StructureMap.Pipeline; @@ -24,9 +25,12 @@ private MissingFactoryFunction _missingFactory = (pluginType, profileManager) => null; + private GraphLog _log; + public PipelineGraph(PluginGraph graph) { _profileManager = graph.ProfileManager; + _log = graph.Log; foreach (PluginFamily family in graph.PluginFamilies) { @@ -42,6 +46,11 @@ } } + public GraphLog Log + { + get { return _log; } + } + public void ImportFrom(PluginGraph graph) { foreach (PluginFamily family in graph.PluginFamilies) @@ -80,6 +89,8 @@ visitor.PluginType(pluginType, defaultInstance); pair.Value.ForEachInstance(instance => visitor.Instance(pluginType, instance)); } + + } // Useful for the validation logic Modified: trunk/bin/Rhino.Mocks.dll =================================================================== (Binary files differ) Modified: trunk/bin/nant/NAnt.CompressionTasks.dll =================================================================== (Binary files differ) Modified: trunk/bin/nant/NAnt.CompressionTasks.xml =================================================================== --- trunk/bin/nant/NAnt.CompressionTasks.xml 2008-06-16 02:12:53 UTC (rev 123) +++ trunk/bin/nant/NAnt.CompressionTasks.xml 2008-06-19 03:10:34 UTC (rev 124) @@ -109,7 +109,10 @@ Extracts files from a zip file. </summary> <remarks> - <para>Uses <see href="http://www.icsharpcode.net/OpenSource/SharpZipLib/">#ziplib</see> (SharpZipLib), an open source Zip/GZip library written entirely in C#.</para> + <para> + Uses <see href="http://www.icsharpcode.net/OpenSource/SharpZipLib/">#ziplib</see> + (SharpZipLib), an open source Zip/GZip library written entirely in C#. + </para> </remarks> <example> <para>Extracts all the file from the zip, preserving the directory structure.</para> @@ -125,13 +128,14 @@ Extracts the files from the zip file. </summary> </member> - <member name="M:NAnt.Compression.Tasks.UnZipTask.ExtractFile(System.IO.Stream,System.String,System.DateTime)"> + <member name="M:NAnt.Compression.Tasks.UnZipTask.ExtractFile(System.IO.Stream,System.String,System.DateTime,System.Int64)"> <summary> Extracts a file entry from the specified stream. </summary> <param name="inputStream">The <see cref="T:System.IO.Stream"/> containing the compressed entry.</param> <param name="entryName">The name of the entry including directory information.</param> <param name="entryDate">The date of the entry.</param> + <param name="entrySize">The uncompressed size of the entry.</param> <exception cref="T:NAnt.Core.BuildException"> <para>The destination directory for the entry could not be created.</para> <para>-or-</para> @@ -171,12 +175,21 @@ entries in the archive. The default is <see langword="true" />. </summary> </member> + <member name="P:NAnt.Compression.Tasks.UnZipTask.Encoding"> + <summary> + The character encoding that has been used for filenames inside the + zip file. The default is the system's OEM code page. + </summary> + </member> <member name="T:NAnt.Compression.Tasks.ZipTask"> <summary> Creates a zip file from the specified filesets. </summary> <remarks> - <para>Uses <see href="http://www.icsharpcode.net/OpenSource/SharpZipLib/">#ziplib</see> (SharpZipLib), an open source Tar/Zip/GZip library written entirely in C#.</para> + <para> + Uses <see href="http://www.icsharpcode.net/OpenSource/SharpZipLib/">#ziplib</see> + (SharpZipLib), an open source Tar/Zip/GZip library written entirely in C#. + </para> </remarks> <example> <para> @@ -234,6 +247,38 @@ The set of files to be included in the archive. </summary> </member> + <member name="P:NAnt.Compression.Tasks.ZipTask.DuplicateHandling"> + <summary> + Specifies the behaviour when a duplicate file is found. The default + is <see cref="F:NAnt.Compression.Types.DuplicateHandling.Add"/>. + </summary> + </member> + <member name="P:NAnt.Compression.Tasks.ZipTask.Encoding"> + <summary> + The character encoding to use for filenames and comment inside the + zip file. The default is the system's OEM code page. + </summary> + </member> + <member name="T:NAnt.Compression.Types.DuplicateHandling"> + <summary> + Specifies how entries with the same name should be processed. + </summary> + </member> + <member name="F:NAnt.Compression.Types.DuplicateHandling.Add"> + <summary> + Overwrite existing entry with same name. + </summary> + </member> + <member name="F:NAnt.Compression.Types.DuplicateHandling.Preserve"> + <summary> + Preserve existing entry with the same name. + </summary> + </member> + <member name="F:NAnt.Compression.Types.DuplicateHandling.Fail"> + <summary> + Report failure when two entries have the same name. + </summary> + </member> <member name="T:NAnt.Compression.Types.TarFileSet"> <summary> A <see cref="T:NAnt.Compression.Types.TarFileSet"/> is a <see cref="T:NAnt.Core.Types.FileSet"/> with extra Modified: trunk/bin/nant/NAnt.Core.dll =================================================================== (Binary files differ) Modified: trunk/bin/nant/NAnt.Core.xml =================================================================== --- trunk/bin/nant/NAnt.Core.xml 2008-06-16 02:12:53 UTC (rev 123) +++ trunk/bin/nant/NAnt.Core.xml 2008-06-19 03:10:34 UTC (rev 124) @@ -161,10 +161,6 @@ </summary> <remarks> <para> - Should only be applied to properties exposing strongly typed arrays or - strongly typed collections. - </para> - <para> The XML format is like this: <code> <![CDATA[ @@ -562,6 +558,19 @@ <summary> Indicates the location that a task executable can be located in. </summary> + <remarks> + <para> + When applied to a task deriving from <see cref="T:NAnt.Core.Tasks.ExternalProgramBase"/>, + the program to execute will first be searched for in the designated + location. + </para> + <para> + If the program does not exist in that location, and the file name is + not an absolute path then the list of tool paths of the current + target framework will be searched (in the order in which they are + defined in the NAnt configuration file). + </para> + </remarks> </member> <member name="M:NAnt.Core.Attributes.ProgramLocationAttribute.#ctor(NAnt.Core.Attributes.LocationType)"> <summary> @@ -651,7 +660,7 @@ </code> NOTE: Attribute values must be of type of string if you want to be able to have macros. The field stores the exact value during - InitializeTask. Just before ExecuteTask is called NAnt will expand + Initialize. Just before ExecuteTask is called NAnt will expand all the macros with the current values. </example> </member> @@ -683,17 +692,13 @@ <exception cref="T:System.ArgumentNullException"><paramref name="name"/> is <see langword="null"/>.</exception> <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="name"/> is a zero-length <see cref="T:System.String"/>.</exception> </member> - <member name="T:NAnt.Core.Filters.ChainableReader"> + <member name="T:NAnt.Core.Configuration.DirList"> <summary> - Functions as a chainable TextReader + Represents an explicitly named list of directories. </summary> <remarks> - Implements a abstraction over a TextReader that allows the class to represent - either a TextReader or another ChainableReader to which it is chained. - - By passing a ChainableReader as a constructor paramater it is possiable to - chain many ChainableReaders together. The last ChainableReader in the chain must - be based on a TextReader. + A <see cref="T:NAnt.Core.Configuration.DirList"/> is useful when you want to capture a list of + directories regardless whether they currently exist. </remarks> </member> <member name="T:NAnt.Core.Element"> @@ -725,7 +730,7 @@ </summary> <remarks> Derived classes that wish to add custom initialization should override - the <see cref="M:NAnt.Core.Element.InitializeElement(System.Xml.XmlNode)"/> method. + the <see cref="M:NAnt.Core.Element.Initialize"/> method. </remarks> </member> <member name="M:NAnt.Core.Element.Log(NAnt.Core.Level,System.String)"> @@ -756,6 +761,16 @@ </summary> <param name="elementNode">The XML node of the element to use for initialization.</param> </member> + <member name="M:NAnt.Core.Element.Initialize"> + <summary> + Derived classes should override to this method to provide extra + initialization and validation not covered by the base class. + </summary> + <remarks> + Access to the <see cref="P:NAnt.Core.Element.XmlNode"/> that was used to initialize + this <see cref="T:NAnt.Core.Element"/> is available through <see cref="P:NAnt.Core.Element.XmlNode"/>. + </remarks> + </member> <member name="M:NAnt.Core.Element.CopyTo(NAnt.Core.Element)"> <summary> Copies all instance data of the <see cref="T:NAnt.Core.Element"/> to a given @@ -998,6 +1013,116 @@ Internal interface used for setting element attributes. </summary> </member> + <member name="P:NAnt.Core.Configuration.DirList.Directory"> + <summary> + The base of the directory of this dirlist. The default is the project + base directory. + </summary> + </member> + <member name="P:NAnt.Core.Configuration.ManagedExecutionMode.Environment"> + <summary> + Gets the collection of environment variables that should be passed + to external programs that are launched. + </summary> + <value> + <summary> + The collection of environment variables that should be passed + to external programs that are launched. + </summary> + </value> + </member> + <member name="P:NAnt.Core.Configuration.RuntimeEngine.Arguments"> + <summary> + The command-line arguments for the runtime engine. + </summary> + </member> + <member name="T:NAnt.Core.Extensibility.ExtensionAssembly"> + <summary> + Represents an <see cref="P:NAnt.Core.Extensibility.ExtensionAssembly.Assembly"/> in which one or more extensions + are found. + </summary> + </member> + <member name="M:NAnt.Core.Extensibility.ExtensionAssembly.#ctor(System.Reflection.Assembly)"> + <summary> + Initializes a new instance of the <see cref="T:NAnt.Core.Extensibility.ExtensionAssembly"/> + class for a given <see cref="P:NAnt.Core.Extensibility.ExtensionAssembly.Assembly"/>. + </summary> + <param name="assembly">The <see cref="P:NAnt.Core.Extensibility.ExtensionAssembly.Assembly"/> for which to construct an <see cref="T:NAnt.Core.Extensibility.ExtensionAssembly"/>.</param> + </member> + <member name="P:NAnt.Core.Extensibility.ExtensionAssembly.Assembly"> + <summary> + Gets the <see cref="P:NAnt.Core.Extensibility.ExtensionAssembly.Assembly"/> containing extensions. + </summary> + </member> + <member name="M:NAnt.Core.Extensibility.ExtensionBuilder.#ctor(NAnt.Core.Extensibility.ExtensionAssembly)"> + <summary> + Initializes a instance of the <see cref="T:NAnt.Core.Extensibility.ExtensionBuilder"/> + class for an extension in a given <see cref="P:NAnt.Core.Extensibility.ExtensionBuilder.ExtensionAssembly"/>. + </summary> + <param name="extensionAssembly">The <see cref="P:NAnt.Core.Extensibility.ExtensionBuilder.ExtensionAssembly"/> in which the extension is found.</param> + <exception cref="T:System.ArgumentNullException"><paramref name="extensionAssembly"/> is <see langword="null"/>.</exception> + </member> + <member name="P:NAnt.Core.Extensibility.ExtensionBuilder.ExtensionAssembly"> + <summary> + Gets the <see cref="P:NAnt.Core.Extensibility.ExtensionBuilder.ExtensionAssembly"/> in which the extension + was found. + </summary> + </member> + <member name="P:NAnt.Core.Extensibility.ExtensionBuilder.Assembly"> + <summary> + Gets the <see cref="P:NAnt.Core.Extensibility.ExtensionBuilder.Assembly"/> from which the extension will + be created. + </summary> + <value> + The <see cref="P:NAnt.Core.Extensibility.ExtensionBuilder.Assembly"/> containing the extension. + </value> + </member> + <member name="M:NAnt.Core.Extensibility.PluginConsumerAttribute.#ctor(System.Type)"> + <summary> + Initializes a new instance of the <see cref="T:NAnt.Core.Extensibility.PluginConsumerAttribute"/> + with the specified type. + </summary> + <param name="type">The type of the <see cref="T:NAnt.Core.Extensibility.IPlugin"/> to consume.</param> + <exception cref="T:System.ArgumentNullException"><paramref name="type"/> is <see langword="null"/>.</exception> + </member> + <member name="T:NAnt.Core.Extensibility.PluginScanner"> + <summary> + Responsible for scanning types for plugins, and maintaining a cache of + <see cref="T:NAnt.Core.Extensibility.PluginBuilder"/> instances. + </summary> + </member> + <member name="M:NAnt.Core.Extensibility.PluginScanner.ScanTypeForPlugins(NAnt.Core.Extensibility.ExtensionAssembly,System.Type,NAnt.Core.Task)"> + <summary> + Scans a given <see cref="T:System.Type"/> for plugins. + </summary> + <param name="extensionAssembly">The <see cref="T:NAnt.Core.Extensibility.ExtensionAssembly"/> containing the <see cref="T:System.Type"/> to scan.</param> + <param name="type">The <see cref="T:System.Type"/> to scan.</param> + <param name="task">The <see cref="T:NAnt.Core.Task"/> which will be used to output messages to the build log.</param> + <returns> + <see langword="true"/> if <paramref name="type"/> represents a + <see cref="T:NAnt.Core.Extensibility.IPlugin"/>; otherwise, <see langword="false"/>. + </returns> + </member> + <member name="M:NAnt.Core.Extensibility.PluginScanner.RegisterPlugins(NAnt.Core.Extensibility.IPluginConsumer)"> + <summary> + Registers matching plugins for the specified <see cref="T:NAnt.Core.Extensibility.IPluginConsumer"/>. + </summary> + <param name="consumer">The <see cref="T:NAnt.Core.Extensibility.IPluginConsumer"/> which plugins must be registered for.</param> + <exception cref="T:System.ArgumentNullException"><paramref name="consumer"/> is <see langword="null"/>.</exception> + </member> + <member name="T:NAnt.Core.Filters.ChainableReader"> + <summary> + Functions as a chainable TextReader + </summary> + <remarks> + Implements a abstraction over a TextReader that allows the class to represent + either a TextReader or another ChainableReader to which it is chained. + + By passing a ChainableReader as a constructor paramater it is possiable to + chain many ChainableReaders together. The last ChainableReader in the chain must + be based on a TextReader. + </remarks> + </member> <member name="M:NAnt.Core.Filters.ChainableReader.Chain(NAnt.Core.Filters.ChainableReader)"> <summary> Makes it so all calls to Read and Peek are passed the ChainableReader @@ -1070,21 +1195,35 @@ is <see langword="false"/>. </summary> </member> - <member name="M:NAnt.Core.Filters.FilterBuilder.#ctor(System.String)"> + <member name="M:NAnt.Core.Filters.FilterBuilder.#ctor(NAnt.Core.Extensibility.ExtensionAssembly,System.String)"> <summary> Creates a new instance of the <see cref="T:NAnt.Core.Filters.FilterBuilder"/> class - for the specified Element class. + for the specified <see cref="T:NAnt.Core.Filters.Filter"/> class in the specified + <see cref="T:NAnt.Core.Extensibility.ExtensionAssembly"/>. </summary> - <param name="className">The class representing the Element.</param> + <param name="extensionAssembly">The <see cref="T:NAnt.Core.Extensibility.ExtensionAssembly"/> containing the <see cref="T:NAnt.Core.Filters.Filter"/>.</param> + <param name="className">The class representing the <see cref="T:NAnt.Core.Filters.Filter"/>.</param> </member> - <member name="M:NAnt.Core.Filters.FilterBuilder.#ctor(System.String,System.String)"> + <member name="P:NAnt.Core.Filters.FilterBuilder.ClassName"> <summary> - Creates a new instance of the <see cref="T:NAnt.Core.Filters.FilterBuilder"/> class - for the specified Element class in the assembly specified. + Gets the name of the <see cref="T:NAnt.Core.Filters.Filter"/> class that can be created + using this <see cref="T:NAnt.Core.Filters.FilterBuilder"/>. </summary> - <param name="className">The class representing the Element.</param> - <param name="assemblyFileName">The assembly containing the Element.</param>/// + <value> + The name of the <see cref="T:NAnt.Core.Filters.Filter"/> class that can be created using + this <see cref="T:NAnt.Core.Filters.FilterBuilder"/>. + </value> </member> + <member name="P:NAnt.Core.Filters.FilterBuilder.FilterName"> + <summary> + Gets the name of the filter which the <see cref="T:NAnt.Core.Filters.FilterBuilder"/> + can create. + </summary> + <value> + The name of the task which the <see cref="T:NAnt.Core.TaskBuilder"/> can + create. + </value> + </member> <member name="T:NAnt.Core.Filters.FilterBuilderCollection"> <summary> Contains a strongly typed collection of <see cref="T:NAnt.Core.Filters.FilterBuilder"/> objects. @@ -1307,13 +1446,13 @@ </summary> </member> <member name="P:NAnt.Core.DataTypeBase.ID"> - <summary> - The ID used to be referenced later. + <summary> + The ID used to be referenced later. </summary> </member> <member name="P:NAnt.Core.DataTypeBase.RefID"> - <summary> - The ID to use as the reference. + <summary> + The ID to use as the reference. </summary> </member> <member name="P:NAnt.Core.DataTypeBase.CanBeReferenced"> @@ -1715,8 +1854,8 @@ </para> <para> Tokens are specified by using the <see cref="T:NAnt.Core.Types.Token"/> element. It is - possoble to specify from 1 to n tokens and replacement values. Values can - be any valid NAnt expression + possible to specify from 1 to n tokens and replacement values. Values can + be any valid NAnt expression. </para> <para> Filters are intended to be used as a element of a <see cref="T:NAnt.Core.Filters.FilterChain"/>. @@ -1773,7 +1912,7 @@ Char as an int or -1 if at the end of the stream. </returns> </member> - <member name="M:NAnt.Core.Filters.ReplaceTokens.InitializeElement(System.Xml.XmlNode)"> + <member name="M:NAnt.Core.Filters.ReplaceTokens.Initialize"> <summary> Initialize the filter by setting its parameters. </summary> @@ -1798,11 +1937,12 @@ </member> <member name="M:NAnt.Core.Filters.ReplaceTokens.CompareCharacters(System.Int32,System.Int32)"> <summary> - Compares to characters taking into account the _ignoreCase flag. + Compares to characters taking <see cref="P:NAnt.Core.Filters.ReplaceTokens.IgnoreCase"/> into account. </summary> <param name="char1"></param> <param name="char2"></param> - <returns></returns> + <returns> + </returns> </member> <member name="P:NAnt.Core.Filters.ReplaceTokens.BeginToken"> <summary> @@ -1920,6 +2060,30 @@ <exception cref="T:System.BadImageFormatException"><paramref name="assemblyFile"/> is not a valid assembly.</exception> <exception cref="T:System.IO.PathTooLongException">An assembly or module was loaded twice with two different evidences, or the assembly name is longer than MAX_PATH characters.</exception> </member> + <member name="M:NAnt.Core.Functions.AssemblyFunctions.Load(System.String)"> + <summary> + Loads an assembly given the long form of its name. + </summary> + <param name="assemblyString">The long form of the assembly name.</param> + <returns> + The loaded assembly. + </returns> + <exception cref="T:System.ArgumentNullException"><paramref name="assemblyString"/> is a <see langword="null"/>.</exception> + <exception cref="T:System.IO.FileNotFoundException"><paramref name="assemblyString"/> is not found.</exception> + <example> + <para> + Determine the location of the Microsoft Access 11 Primary Interop + Assembly by loading it using its fully qualified name, and copy it + to the build directory. + </para> + <code> + <![CDATA[ + <property name="access.pia.path" value="${assembly::get-location(assembly::load('Microsoft.Office.Interop.Access, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'))}" /> + <copy file="${access.pia.path}" todir="${build.dir}" /> + ]]> + </code> + </example> + </member> <member name="M:NAnt.Core.Functions.AssemblyFunctions.GetFullName(System.Reflection.Assembly)"> <summary> Gets the full name of the assembly, also known as the display name. @@ -1982,6 +2146,17 @@ <returns> The full name of the assembly, also known as the display name. </returns> + <example> + <para> + Output the full name of the <c>nunit.framework</c> assembly to the + build log. + </para> + <code> + <![CDATA[ + <echo message="${assemblyname::get-full-name(assemblyname::get-assembly-name('nunit.framework.dll'))}" /> + ]]> + </code> + </example> <seealso cref="M:NAnt.Core.Functions.AssemblyFunctions.GetName(System.Reflection.Assembly)"/> </member> <member name="M:NAnt.Core.Functions.AssemblyNameFunctions.GetName(System.Reflection.AssemblyName)"> @@ -1992,6 +2167,17 @@ <returns> The simple, unencrypted name of the assembly. </returns> + <example> + <para> + Output the simple name of the <c>nunit.framework</c> assembly to + the build log. + </para> + <code> + <![CDATA[ + <echo message="${assemblyname::get-name(assemblyname::get-assembly-name('nunit.framework.dll'))}" /> + ]]> + </code> + </example> <seealso cref="M:NAnt.Core.Functions.AssemblyFunctions.GetName(System.Reflection.Assembly)"/> </member> <member name="M:NAnt.Core.Functions.AssemblyNameFunctions.GetVersion(System.Reflection.AssemblyName)"> @@ -2002,6 +2188,17 @@ <returns> The version of the assembly. </returns> + <example> + <para> + Output the major version of the <c>nunit.framework</c> assembly + to the build log. + </para> + <code> + <![CDATA[ + <echo message="${version::get-major-version(assemblyname::get-version(assemblyname::get-assembly-name('nunit.framework.dll')))}" /> + ]]> + </code> + </example> <seealso cref="M:NAnt.Core.Functions.AssemblyFunctions.GetName(System.Reflection.Assembly)"/> <seealso cref="T:NAnt.Core.Functions.VersionFunctions"/> </member> @@ -2019,6 +2216,17 @@ <remarks> The assembly is not added to this domain. </remarks> + <example> + <para> + Output the full name of the <c>nunit.framework</c> assembly to the + build log. + </para> + <code> + <![CDATA[ + <echo message="${assemblyname::get-full-name(assemblyname::get-assembly-name('nunit.framework.dll'))}" /> + ]]> + </code> + </example> </member> <member name="M:NAnt.Core.Functions.BooleanConversionFunctions.Parse(System.String)"> <summary> @@ -2243,6 +2451,11 @@ <see cref="T:System.Globalization.DateTimeFormatInfo"/> for the invariant culture. </remarks> </member> + <member name="T:NAnt.Core.Functions.DirectoryFunctions"> + <summary> + Groups a set of functions for dealing with directories. + </summary> + </member> <member name="M:NAnt.Core.Functions.DirectoryFunctions.GetCreationTime(System.String)"> <summary> Returns the creation date and time of the specified directory. @@ -2255,15 +2468,6 @@ <exception cref="T:System.ArgumentException"><paramref name="path"/> is a zero-length string, contains only white space, or contains one or more invalid characters.</exception> <exception cref="T:System.IO.PathTooLongException">The specified path, file name, or both exceed the system-defined maximum length.</exception> </member> - <member name="M:NAnt.Core.Functions.DirectoryFunctions.GetCurrentDirectory"> - <summary> - Gets the current working directory. - </summary> - <returns> - A <see cref="T:System.String"/> containing the path of the current working - directory. - </returns> - </member> <member name="M:NAnt.Core.Functions.DirectoryFunctions.GetLastWriteTime(System.String)"> <summary> Returns the date and time the specified directory was last written to. @@ -2289,6 +2493,15 @@ <exception cref="T:System.IO.PathTooLongException">The specified path, file name, or both exceed the system-defined maximum length.</exception> <exception cref="T:System.NotSupportedException">The <paramref name="path"/> parameter is in an invalid format.</exception> </member> + <member name="M:NAnt.Core.Functions.DirectoryFunctions.GetCurrentDirectory"> + <summary> + Gets the current working directory. + </summary> + <returns> + A <see cref="T:System.String"/> containing the path of the current working + directory. + </returns> + </member> <member name="M:NAnt.Core.Functions.DirectoryFunctions.GetParentDirectory(System.String)"> <summary> Retrieves the parent directory of the specified path. @@ -2349,6 +2562,20 @@ </code> </example> </member> + <member name="T:NAnt.Core.Functions.DnsFunctions"> + <summary> + Functions for requesting information from DNS. + </summary> + </member> + <member name="M:NAnt.Core.Functions.DnsFunctions.GetHostName"> + <summary> + Gets the host name of the local computer. + </summary> + <returns> + A string that contains the DNS host name of the local computer. + </returns> + <exception cref="T:System.Net.Sockets.SocketException">An error is encountered when resolving the local host name.</exception> + </member> <member name="M:NAnt.Core.Functions.DoubleConversionFunctions.Parse(System.String)"> <summary> Converts the specified string representation of a number to its @@ -2517,6 +2744,11 @@ </code> </example> </member> + <member name="T:NAnt.Core.Functions.FileFunctions"> + <summary> + Groups a set of functions for dealing with files. + </summary> + </member> <member name="M:NAnt.Core.Functions.FileFunctions.GetCreationTime(System.String)"> <summary> Returns the creation date and time of the specified file. @@ -2610,7 +2842,6 @@ <exception cref="T:System.ArgumentException"><paramref name="assemblyFile"/> is an empty <see cref="T:System.String"/>.</exception> <exception cref="T:System.IO.FileNotFoundException"><paramref name="assemblyFile"/> is not found, or the file you are trying to check does not specify a filename extension.</exception> <exception cref="T:System.Security.SecurityException">The caller does not have path discovery permission.</exception> - <exception cref="T:System.IO.FileLoadException">The file could not be loaded for some reason.</exception> </member> <member name="T:NAnt.Core.Functions.FileVersionInfoFunctions"> <summary> @@ -2841,6 +3072,18 @@ <see langword="true" /> if the specified target exists; otherwise, <see langword="false" />. </returns> + <example> + <para> + Execute target "clean", if it exists. + </para> + <code> + <![CDATA[ + <if test="${target::exists('clean')}"> + <call target="clean" /> + </if> + ]]> + </code> + </example> </member> <member name="M:NAnt.Core.Functions.TargetFunctions.GetCurrentTarget"> <summary> @@ -2873,15 +3116,14 @@ <see langword="false" />. </returns> </member> - <member name="M:NAnt.Core.Functions.TaskFunctions.GetLocation(System.String)"> + <member name="M:NAnt.Core.Functions.TaskFunctions.GetAssembly(System.String)"> <summary> - Returns the filename of the assembly from which the specified task + Returns the <see cref="T:System.Reflection.Assembly"/> from which the specified task was loaded. </summary> - <param name="name">The task to get the location of.</param> + <param name="name">The name of the task to get the <see cref="T:System.Reflection.Assembly"/> of.</param> <returns> - The filename of the assembly from which the specified task was - loaded. + The <see cref="T:System.Reflection.Assembly"/> from which the specified task was loaded. </returns> <exception cref="T:System.ArgumentException">Task <paramref name="name"/> is not available.</exception> </member> @@ -2895,8 +3137,19 @@ <see langword="false" />. </returns> <example> - <para>Check whether the "debug" property exists.</para> - <code>property::exists('debug')</code> + <para> + Execute a set of tasks if the "build.debug" property + exists. + </para> + <code> + <![CDATA[ + <if test="${property::exists('build.debug')}"> + <echo message="Starting debug build" /> + <call target="init-debug" /> + <call target="build" /> + </if> + ]]> + </code> </example> </member> <member name="M:NAnt.Core.Functions.PropertyFunctions.IsReadOnly(System.String)"> @@ -2933,11 +3186,11 @@ </member> <member name="M:NAnt.Core.Functions.FrameworkFunctions.Exists(System.String)"> <summary> - Checks whether the specified framework exists. + Checks whether the specified framework exists, and is valid. </summary> - <param name="name">The framework to test.</param> + <param name="framework">The framework to test.</param> <returns> - <see langword="true" /> if the specified framework exists; otherwise, + <see langword="true" /> if the specified framework exists ; otherwise, <see langword="false" />. </returns> </member> @@ -2945,7 +3198,7 @@ <summary> Checks whether the SDK for the specified framework is installed. </summary> - <param name="name">The framework to test.</param> + <param name="framework">The framework to test.</param> <returns> <see langword="true"/> if the SDK for specified framework is installed; otherwise, <see langword="false"/>. @@ -3055,6 +3308,38 @@ <seealso cref="M:NAnt.Core.Functions.FrameworkFunctions.GetRuntimeFramework"/> <seealso cref="M:NAnt.Core.Functions.FrameworkFunctions.GetTargetFramework"/> </member> + <member name="M:NAnt.Core.Functions.FrameworkFunctions.GetToolPath(System.String)"> + <summary> + Gets the absolute path of the specified tool for the current + target framework. + </summary> + <param name="tool">The file name of the tool to search for.</param> + <returns> + The absolute path to <paramref name="tool"/> if found in one of the + configured tool paths; otherwise, an error is reported. + </returns> + <exception cref="T:System.IO.FileNotFoundException"><paramref name="tool"/> could not be found in the configured tool paths.</exception> + <remarks> + <para> + The configured tool paths are scanned in the order in which they + are defined in the framework configuration. + </para> + <para> + The file name of the tool to search should include the extension. + </para> + </remarks> + <example> + <para>Use <b>gacutil</b> to install an assembly in the GAC.</para> + <code> + <![CDATA[ + <exec program="${framework::get-tool-path('gacutil.exe')}" managed="strict"> + <arg value="/i" /> + <arg file="Cegeka.HealthFramework.dll" /> + </exec> + ]]> + </code> + </example> + </member> <member name="M:NAnt.Core.Functions.FrameworkFunctions.GetRuntimeEngine(System.String)"> <summary> Gets the runtime engine of the specified framework. @@ -3069,7 +3354,7 @@ <seealso cref="M:NAnt.Core.Functions.FrameworkFunctions.GetRuntimeFramework"/> <seealso cref="M:NAnt.Core.Functions.FrameworkFunctions.GetTargetFramework"/> </member> - <member name="M:NAnt.Core.Functions.FrameworkFunctions.CheckFramework(System.String)"> + <member name="M:NAnt.Core.Functions.FrameworkFunctions.GetFramework(System.String)"> <summary> Checks whether the specified framework is valid. </summary> @@ -3735,13 +4020,13 @@ <code>string::last-index-of('testing string', 'test') ==> 0</code> </example> <example> - <code>string::last-index-of('testing string', '') ==> 0</code> + <code>string::last-index-of('testing string', '') ==> 13</code> </example> <example> <code>string::last-index-of('testing string', 'Test') ==> -1</code> </example> <example> - <code>string::last-index-of('testing string', 'ing') ==> 4</code> + <code>string::last-index-of('testing string', 'ing') ==> 11</code> </example> </member> <member name="M:NAnt.Core.Functions.StringFunctions.PadLeft(System.String,System.Int32,System.String)"> @@ -3917,6 +4202,19 @@ The number of whole days represented by the given <see cref="T:System.TimeSpan"/>. </returns> + <example> + <para> + Remove all files that have not been modified in the last 7 days from directory "binaries".</para> + <code> + <![CDATA[ + <foreach item="File" in="binaries" property="filename"> + <if test="${timespan::get-days(datetime::now() - file::get-last-write-time(filename)) >= 7}"> + <delete file="${filename}" /> + </if> + </foreach> + ]]> + </code> + </example> </member> <member name="M:NAnt.Core.Functions.TimeSpanFunctions.GetHours(System.TimeSpan)"> <summary> @@ -4211,9 +4509,9 @@ The actual logging is delegated to the project. </para> <para> - If the <see cref="P:NAnt.Core.Task.Verbose"/> attribute is set on the task and a - message is logged with level <see cref="F:NAnt.Core.Level.Verbose"/>, the - priority of the message will be increased to <see cref="F:NAnt.Core.Level.Info"/>. + If the <see cref="P:NAnt.Core.Task.Verbose"/> attribute is set on the task and a + message is logged with level <see cref="F:NAnt.Core.Level.Verbose"/>, the + priority of the message will be increased to <see cref="F:NAnt.Core.Level.Info"/> when the threshold of the build log is <see cref="F:NAnt.Core.Level.Info"/>. </para> <para> @@ -4221,6 +4519,11 @@ the build log itself is still configured with threshold <see cref="F:NAnt.Core.Level.Info"/>. </para> + <para> + The threshold of the project is not taken into account to determine + whether a message should be passed to the logging infrastructure, + as build listeners might be interested in receiving all messages. + </para> </remarks> </member> <member name="M:NAnt.Core.Task.Log(NAnt.Core.Level,System.String,System.Object[])"> @@ -4255,8 +4558,14 @@ <param name="messageLevel">The <see cref="T:NAnt.Core.Level"/> to check.</param> <returns> <see langword="true"/> if messages with the given <see cref="T:NAnt.Core.Level"/> - will be output in the build log; otherwise, <see langword="false"/>. + should be passed on to the logging infrastructure; otherwise, + <see langword="false"/>. </returns> + <remarks> + The threshold of the project is not taken into account to determine + whether a message should be passed to the logging infrastructure, + as build listeners might be interested in receiving all messages. + </remarks> </member> <member name="M:NAnt.Core.Task.InitializeTaskConfiguration"> <summary> @@ -4269,8 +4578,8 @@ file if a build element is constructed from code. </remarks> </member> - <member name="M:NAnt.Core.Task.InitializeElement(System.Xml.XmlNode)"> - <summary><note>Deprecated (to be deleted).</note></summary> + <member name="M:NAnt.Core.Task.Initialize"> + <summary>Initializes the task.</summary> </member> <member name="M:NAnt.Core.Task.InitializeTask(System.Xml.XmlNode)"> <summary>Initializes the task.</summary> @@ -4278,6 +4587,25 @@ <member name="M:NAnt.Core.Task.ExecuteTask"> <summary>Executes the task.</summary> </member> + <member name="M:NAnt.Core.Task.GetAttributeConfigurationNode(NAnt.Core.FrameworkInfo,System.String)"> + <summary> + Locates the XML node for the specified attribute in either the + configuration section of the extension assembly or the.project. + </summary> + <param name="attributeName">The name of attribute for which the XML configuration node should be located.</param> + <param name="framework">The framework to use to obtain framework specific information, or <see langword="null" /> if no framework specific information should be used.</param> + <returns> + The XML configuration node for the specified attribute, or + <see langword="null" /> if no corresponding XML node could be + located. + </returns> + <remarks> + If there's a valid current framework, the configuration section for + that framework will first be searched. If no corresponding + configuration node can be located in that section, the framework-neutral + section of the project configuration node will be searched. + </remarks> + </member> <member name="P:NAnt.Core.Task.FailOnError"> <summary> Determines if task failure stops the build, or is just reported. @@ -4316,17 +4644,24 @@ <member name="P:NAnt.Core.Task.Threshold"> <summary> Gets or sets the log threshold for this <see cref="T:NAnt.Core.Task"/>. By - default the threshold of a task matches the threshold of the project. + default the threshold of a task is <see cref="F:NAnt.Core.Level.Debug"/>, + causing no messages to be filtered in the task itself. </summary> <value> The log threshold level for this <see cref="T:NAnt.Core.Task"/>. </value> <remarks> - Setting the threshold of a <see cref="T:NAnt.Core.Task"/> higher than the - threshold of the its <see cref="T:NAnt.Core.Project"/> does not have any - effect. + When the threshold of a <see cref="T:NAnt.Core.Task"/> is higher than the + threshold of the <see cref="T:NAnt.Core.Project"/>, then all messages will + still be delivered to the build listeners. </remarks> </member> + <member name="P:NAnt.Core.Task.TaskBuilder"> + <summary> + Returns the TaskBuilder used to construct an instance of this + <see cref="T:NAnt.Core.Task"/>. + </summary> + </member> <member name="P:NAnt.Core.Tasks.AttribTask.File"> <summary> The name of the file which will have its attributes set. This is @@ -4561,10 +4896,23 @@ target and all its dependent targets will be re-executed. </para> <para> - To avoid dependent targets from being executed more than once, an "unless" - attribute with value "${<see href="../functions/target.has-executed.html">target::has-executed</see>('<c><target name></c>')}" - should be added to the dependent targets. + To avoid dependent targets from being executed more than once, two + options are available: </para> + <list type="bullet"> + <item> + <description> + Add an "unless" attribute with value "${<see href="../functions/target.has-executed.html">target::has-executed</see>('<c><target name></c>')}" + to the dependent targets. + </description> + </item> + <item> + <description> + Set the <see cref="P:NAnt.Core.Tasks.CallTask.CascadeDependencies"/> attribute on the + <see cref="T:NAnt.Core.Tasks.CallTask"/> to <see langword="false "/> (<c>recommended</c>). + </description> + </item> + </list> </remarks> <example> <para> @@ -4585,7 +4933,7 @@ <![CDATA[ <project default="build"> <property name="debug" value="false" /> - <target name="init" unless="${target::has-executed('init')}"> + <target name="init"> <echo message="initializing" /> </target> <target name="compile" depends="init"> @@ -4600,6 +4948,61 @@ </project> ]]> </code> + <para> + The <see cref="P:NAnt.Core.Tasks.CallTask.CascadeDependencies"/> parameter of the + <see cref="T:NAnt.Core.Tasks.CallTask"/> defaults to <see langword="true"/>, + causing the "init" target to be executed for both + the "debug" and "release" build. + </para> + <para> + This results in the following build log: + </para> + <code> + build: + + init: + + [echo] initializing + + compile: + + [echo] compiling with debug = false + + init: + + [echo] initializing + + compile: + + [echo] compiling with debug = true + + BUILD SUCCEEDED + </code> + <para> + If the "init" should only be executed once, set the + <see cref="P:NAnt.Core.Tasks.CallTask.CascadeDependencies"/> attribute of the <see cref="T:NAnt.Core.Tasks.CallTask"/> + to <see langword="false"/>. + </para> + <para> + The build log would then look like this: + </para> + <code> + build: + + init: + + [echo] initializing + + compile: + + [echo] compiling with debug = false + + compile: + + [echo] compiling with debug = true + + BUILD SUCCEEDED + </code> </example> </member> <member name="M:NAnt.Core.Tasks.CallTask.ExecuteTask"> @@ -4607,12 +5010,11 @@ Executes the specified target. </summary> </member> - <member name="M:NAnt.Core.Tasks.CallTask.InitializeTask(System.Xml.XmlNode)"> + <member name="M:NAnt.Core.Tasks.CallTask.Initialize"> <summary> Makes sure the <see cref="T:NAnt.Core.Tasks.CallTask"/> is not calling its own parent. </summary> - <param name="taskNode">The task XML node.</param> </member> <member name="P:NAnt.Core.Tasks.CallTask.TargetName"> <summary> @@ -4627,8 +5029,8 @@ </member> <member name="P:NAnt.Core.Tasks.CallTask.CascadeDependencies"> <summary> - Cascade all the specified targets dependencies. The - default is <see langword="true" />. + Execute the specified targets dependencies -- even if they have been + previously executed. The default is <see langword="true" />. </summary> </member> <member name="T:NAnt.Core.Tasks.CopyTask"> @@ -4724,11 +5126,10 @@ Initialize new instance of the <see cref="T:NAnt.Core.Tasks.CopyTask"/>. </summary> </member> - <member name="M:NAnt.Core.Tasks.CopyTask.InitializeTask(System.Xml.XmlNode)"> + <member name="M:NAnt.Core.Tasks.CopyTask.Initialize"> <summary> Checks whether the task is initialized with valid attributes. </summary> - <param name="taskNode">The <see ... [truncated message content] |