Task Class
[This documentation is for preview only, and is subject to change in later releases. Blank topics are included as placeholders.]
When overridden in a derived form, provides functionality for tasks.
Namespace: Microsoft.Build.Utilities
Assembly: Microsoft.Build.Utilities.v4.0 (in Microsoft.Build.Utilities.v4.0.dll)
The Task type exposes the following members.
| Name | Description | |
|---|---|---|
|
Task() | Initializes a new instance of the Task class. |
|
Task(ResourceManager) | Initializes a new instance of the Task class with the specified TaskResources. |
|
Task(ResourceManager, String) | Initializes a new instance of the Task class with the specified TaskResources and HelpKeywordPrefix. |
| Name | Description | |
|---|---|---|
|
BuildEngine | Gets or sets the instance of the IBuildEngine object used by the task. |
|
BuildEngine2 | Gets the instance of the IBuildEngine2 object used by the task. |
|
BuildEngine3 | Gets the instance of the IBuildEngine3 object used by the task. |
|
BuildEngine4 | |
|
HelpKeywordPrefix | Gets or sets the prefix used to compose Help keywords from resource names. |
|
HostObject | Gets or sets the host object associated with the task. |
|
Log | Gets an instance of a TaskLoggingHelper class containing task logging methods. |
|
TaskResources | Gets or sets the culture-specific resources associated with the task. |
| Name | Description | |
|---|---|---|
|
Equals(Object) | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) |
|
Execute | When overridden in a derived class, executes the task. |
|
Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) |
|
GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) |
|
GetType | Gets the Type of the current instance. (Inherited from Object.) |
|
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
|
ToString | Returns a string that represents the current object. (Inherited from Object.) |
This abstract class provides default implementations for the methods and properties of the ITask interface.
This class can only be instantiated in a derived form.
The following example shows the code for a task that creates one or more directories.
using System; using System.IO; using System.Security; using System.Collections; using Microsoft.Build.Framework; using Microsoft.Build.Utilities; namespace Microsoft.Build.Tasks { /* * Class: MakeDir * * An MSBuild task that creates one or more directories. * */ public class MakeDir : Task { // The Required attribute indicates the following to MSBuild: // - if the parameter is a scalar type, and it is not supplied, fail the build immediately // - if the parameter is an array type, and it is not supplied, pass in an empty array // In this case the parameter is an array type, so if a project fails to pass in a value for the // Directories parameter, the task will get invoked, but this implementation will do nothing, // because the array will be empty. [Required] // Directories to create. public ITaskItem[] Directories { get { return directories; } set { directories = value; } } // The Output attribute indicates to MSBuild that the value of this property can be gathered after the // task has returned from Execute(), if the project has an <Output> tag under this task's element for // this property. [Output] // A project may need the subset of the inputs that were actually created, so make that available here. public ITaskItem[] DirectoriesCreated { get { return directoriesCreated; } } private ITaskItem[] directories; private ITaskItem[] directoriesCreated; /// <summary> /// Execute is part of the Microsoft.Build.Framework.ITask interface. /// When it's called, any input parameters have already been set on the task's properties. /// It returns true or false to indicate success or failure. /// </summary> public override bool Execute() { ArrayList items = new ArrayList(); foreach (ITaskItem directory in Directories) { // ItemSpec holds the filename or path of an Item if (directory.ItemSpec.Length > 0) { try { // Only log a message if we actually need to create the folder if (!Directory.Exists(directory.ItemSpec)) { Log.LogMessage(MessageImportance.Normal, "Creating directory " + directory.ItemSpec); Directory.CreateDirectory(directory.ItemSpec); } // Add to the list of created directories items.Add(directory); } // If a directory fails to get created, log an error, but proceed with the remaining // directories. catch (Exception ex) { if (ex is IOException || ex is UnauthorizedAccessException || ex is PathTooLongException || ex is DirectoryNotFoundException || ex is SecurityException) { Log.LogError("Error trying to create directory " + directory.ItemSpec + ". " + ex.Message); } else { throw; } } } } // Populate the "DirectoriesCreated" output items. directoriesCreated = (ITaskItem[])items.ToArray(typeof(ITaskItem)); // Log.HasLoggedErrors is true if the task logged any errors -- even if they were logged // from a task's constructor or property setter. As long as this task is written to always log an error // when it fails, we can reliably return HasLoggedErrors. return !Log.HasLoggedErrors; } } }
Windows 8 Consumer Preview, Windows Server 8 Beta, Windows 7, Windows Server 2008 SP2, Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Microsoft.Build.Utilities.Task
Microsoft.Activities.Build.WorkflowBuildMessageTask
Microsoft.Build.Tasks.GenerateManifestBase
Microsoft.Build.Tasks.SignFile
Microsoft.Build.Tasks.TaskExtension
Microsoft.Build.Tasks.UpdateManifest
Microsoft.Build.Tasks.Windows.FileClassifier
Microsoft.Build.Tasks.Windows.GenerateTemporaryTargetAssembly
Microsoft.Build.Tasks.Windows.GetWinFXPath
Microsoft.Build.Tasks.Windows.MarkupCompilePass1
Microsoft.Build.Tasks.Windows.MarkupCompilePass2
Microsoft.Build.Tasks.Windows.MergeLocalizationDirectives
Microsoft.Build.Tasks.Windows.ResourcesGenerator
Microsoft.Build.Tasks.Windows.UidManager
Microsoft.Build.Tasks.Windows.UpdateManifestForBrowserApplication
Microsoft.Build.Tasks.Xaml.CompilationPass2Task
Microsoft.Build.Tasks.Xaml.GenerateTemporaryAssemblyTask
Microsoft.Build.Tasks.Xaml.PartialClassGenerationTask
Microsoft.Build.Tasks.Xsd.XsdTypeImporterTask
Microsoft.Build.Utilities.ToolTask
Microsoft.Data.Entity.Build.Tasks.EntityClean
Microsoft.Data.Entity.Build.Tasks.EntityDeploy
Microsoft.Data.Entity.Build.Tasks.EntityDeploySetLogicalNames
Microsoft.Data.Entity.Build.Tasks.EntityDeploySplit
System.Workflow.ComponentModel.Compiler.CompileWorkflowCleanupTask
System.Workflow.ComponentModel.Compiler.CompileWorkflowTask