ToolTask Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Base class used for tasks that spawn an executable. This class implements the ToolPath property which can be used to override the default path.
public ref class ToolTask abstract : Microsoft::Build::Utilities::Task, Microsoft::Build::Framework::ICancelableTask
public ref class ToolTask abstract : Microsoft::Build::Utilities::Task, Microsoft::Build::Framework::ICancelableTask, Microsoft::Build::Framework::IIncrementalTask
public ref class ToolTask abstract : Microsoft::Build::Utilities::Task
public abstract class ToolTask : Microsoft.Build.Utilities.Task, Microsoft.Build.Framework.ICancelableTask
public abstract class ToolTask : Microsoft.Build.Utilities.Task, Microsoft.Build.Framework.ICancelableTask, Microsoft.Build.Framework.IIncrementalTask
public abstract class ToolTask : Microsoft.Build.Utilities.Task
type ToolTask = class
inherit Task
interface ICancelableTask
interface ITask
type ToolTask = class
inherit Task
interface IIncrementalTask
interface ICancelableTask
interface ITask
type ToolTask = class
inherit Task
Public MustInherit Class ToolTask
Inherits Task
Implements ICancelableTask
Public MustInherit Class ToolTask
Inherits Task
Implements ICancelableTask, IIncrementalTask
Public MustInherit Class ToolTask
Inherits Task
- Inheritance
- Derived
- Implements
Remarks
INTERNAL WARNING: DO NOT USE the Log property in this class! Log points to resources in the task assembly itself, and we want to use resources from Utilities. Use LogPrivate (for private Utilities resources) and LogShared (for shared MSBuild resources)
Constructors
ToolTask() |
Protected constructor |
ToolTask(ResourceManager) |
Protected constructor |
ToolTask(ResourceManager, String) |
Protected constructor |
Properties
BuildEngine |
The build engine automatically sets this property to allow tasks to call back into it. (Inherited from Task) |
BuildEngine2 |
The build engine automatically sets this property to allow tasks to call back into it. This is a convenience property so that task authors inheriting from this class do not have to cast the value from IBuildEngine to IBuildEngine2. (Inherited from Task) |
BuildEngine3 |
Retrieves the IBuildEngine3 version of the build engine interface provided by the host. (Inherited from Task) |
BuildEngine4 |
Retrieves the IBuildEngine4 version of the build engine interface provided by the host. (Inherited from Task) |
BuildEngine5 |
Retrieves the IBuildEngine5 version of the build engine interface provided by the host. (Inherited from Task) |
BuildEngine6 |
Retrieves the IBuildEngine6 version of the build engine interface provided by the host. (Inherited from Task) |
BuildEngine7 |
Retrieves the IBuildEngine7 version of the build engine interface provided by the host. (Inherited from Task) |
BuildEngine8 |
Retrieves the IBuildEngine8 version of the build engine interface provided by the host. (Inherited from Task) |
BuildEngine9 |
Retrieves the IBuildEngine9 version of the build engine interface provided by the host. (Inherited from Task) |
canBeIncremental |
ToolTask is not incremental by default. When a derived class overrides SkipTaskExecution, then Question feature can take into effect. |
EchoOff |
When set to true, it passes /Q to the cmd.exe command line such that the command line does not get echo-ed on stdout |
EnvironmentOverride |
Obsolete.
Gets the Path override value. |
EnvironmentVariables |
Array of equals-separated pairs of environment variables that should be passed to the spawned executable, in addition to (or selectively overriding) the regular environment block. |
ExitCode |
The return code of the spawned process. If the task logged any errors, but the process had an exit code of 0 (success), this will be set to -1. |
FailIfNotIncremental | |
HasLoggedErrors |
Whether this ToolTask has logged any errors |
HelpKeywordPrefix |
Gets or sets the prefix used to compose help keywords from string resource names. If a task does not have help keywords associated with its messages, it can ignore this property or set it to null. If the prefix is set to an empty string, then string resource names will be used verbatim as help keywords. For an example of how this prefix is used, see the TaskLoggingHelper.LogErrorWithCodeFromResources(string, object[]) method. (Inherited from Task) |
HostObject |
The build engine sets this property if the host IDE has associated a host object with this particular task. (Inherited from Task) |
Log |
Gets an instance of a TaskLoggingHelper class containing task logging methods. The taskLoggingHelper is a MarshallByRef object which needs to have MarkAsInactive called if the parent task is making the appdomain and marshaling this object into it. If the appdomain is not unloaded at the end of the task execution and the MarkAsInactive method is not called this will result in a leak of the task instances in the appdomain the task was created within. (Inherited from Task) |
LogStandardErrorAsError |
Should ALL messages received on the standard error stream be logged as errors. |
ResponseFileEncoding |
Overridable property specifying the encoding of the response file, UTF8 by default |
StandardErrorEncoding |
Overridable property specifying the encoding of the captured task standard error stream |
StandardErrorImportance |
Task Parameter: Importance with which to log text from the standard error stream. |
StandardErrorImportanceToUse |
The actual importance at which standard error messages will be logged. |
StandardErrorLoggingImportance |
Importance with which to log text from the standard error stream. |
StandardOutputEncoding |
Overridable property specifying the encoding of the captured task standard output stream |
StandardOutputImportance |
Task Parameter: Importance with which to log text from the standard out stream. |
StandardOutputImportanceToUse |
The actual importance at which standard out messages will be logged. |
StandardOutputLoggingImportance |
Importance with which to log text from in the standard out stream. |
TaskProcessTerminationTimeout |
A timeout to wait for a task to terminate before killing it. In milliseconds. |
TaskResources |
Gets or sets the task's culture-specific resources. Derived classes should register their resources either during construction, or via this property, if they have localized strings. (Inherited from Task) |
Timeout |
Project visible property that allows the user to specify an amount of time after which the task executable is terminated. |
ToolCanceled |
Used to signal when a tool has been cancelled. |
ToolExe |
Projects may set this to override a task's ToolName. Tasks may override this to prevent that. |
ToolName |
Implemented by the derived class. Returns a string which is the name of the underlying .EXE to run e.g. "resgen.exe" Only used by the ToolExe getter. |
ToolPath |
Project-visible property allows the user to override the path to the executable. |
UseCommandProcessor |
When set to true, the tool task will create a batch file for the command-line and execute that using the command-processor, rather than executing the command directly. |
UseUtf8Encoding |
Whether or not to use UTF8 encoding for the cmd file and console window. Values: Always, Never, Detect If set to Detect, the current code page will be used unless it cannot represent the Command string. In that case, UTF-8 is used. |
YieldDuringToolExecution |
When set to true, this task will yield the node when its task is executing. |
Methods
AdjustCommandsForOperatingSystem(String) |
Replace backslashes with OS-specific path separators, except when likely that the backslash is intentional. |
CallHostObjectToExecute() |
We expect the tasks to override this method, if they support host objects. The implementation should call into the host object to perform the real work of the task. For example, for compiler tasks like Csc and Vbc, this method would call Compile() on the host object. |
Cancel() |
Cancels the process executing the task by asking it to close nicely, then after a short period, forcing termination. |
DeleteTempFile(String) |
Delete temporary file. If the delete fails for some reason (e.g. file locked by anti-virus) then the call will not throw an exception. Instead a warning will be logged, but the build will not fail. |
Execute() |
This method invokes the tool with the given parameters. |
ExecuteTool(String, String, String) |
Writes out a temporary response file and shell-executes the tool requested. Enables concurrent logging of the output of the tool. |
GenerateCommandLineCommands() |
Returns a string with those switches and other information that can't go into a response file and must go directly onto the command line. Called after ValidateParameters and SkipTaskExecution |
GenerateFullPathToTool() |
Gets the fully qualified tool name. Should return ToolExe if ToolTask should search for the tool in the system path. If ToolPath is set, this is ignored. |
GenerateResponseFileCommands() |
Returns a string with those switches and other information that can go into a response file. Called after ValidateParameters and SkipTaskExecution |
GetProcessStartInfo(String, String, String) |
Initializes the information required to spawn the process executing the tool. |
GetResponseFileSwitch(String) |
Returns the command line switch used by the tool executable to specify the response file. Will only be called if the task returned a non empty string from GetResponseFileCommands Called after ValidateParameters, SkipTaskExecution and GetResponseFileCommands |
GetWorkingDirectory() |
Gets the working directory to use for the process. Should return null if ToolTask should use the current directory. |
HandleTaskExecutionErrors() |
Allows tool to handle the return code. This method will only be called with non-zero exitCode. |
InitializeHostObject() |
We expect tasks to override this method if they support host objects. The implementation should make sure that the host object is ready to perform the real work of the task. |
LogEventsFromTextOutput(String, MessageImportance) |
Calls a method on the TaskLoggingHelper to parse a single line of text to see if there are any errors or warnings in canonical format. This can be overridden by the derived class if necessary. |
LogPathToTool(String, String) |
Logs the tool name and the path from where it is being run. |
LogToolCommand(String) |
Logs the actual command line about to be executed (or what the task wants the log to show) |
ProcessStarted() |
Overridable function called after Start() in ExecuteTool(String, String, String) |
ReceiveExitNotification(Object, EventArgs) |
Signals when the tool exits. The Process object executing the tool calls this method when the tool exits. |
ReceiveStandardErrorData(Object, DataReceivedEventArgs) |
Queues up the output from the stderr stream of the process executing the tool, and signals the availability of the data. The Process object executing the tool calls this method for every line of text that the tool writes to stderr. |
ReceiveStandardOutputData(Object, DataReceivedEventArgs) |
Queues up the output from the stdout stream of the process executing the tool, and signals the availability of the data. The Process object executing the tool calls this method for every line of text that the tool writes to stdout. |
ResponseFileEscape(String) |
Overridable method to escape content of the response file |
SkipTaskExecution() |
Returns true if task execution is not necessary. Executed after ValidateParameters |
StartToolProcess(Process) |
We expect tasks to override this method if they need information about the tool process or its process events during task execution. Implementation should make sure that the task is started in this method. Starts the process during task execution. |
ValidateParameters() |
Implemented in the derived class |