ToolTask ToolTask ToolTask ToolTask Class

定義

派生フォームでオーバーライドされると、コマンド ライン ツールをラップするタスクに機能を提供します。When overridden in a derived form, provides functionality for a task that wraps a command line tool.

public ref class ToolTask abstract : Microsoft::Build::Utilities::Task, Microsoft::Build::Framework::ICancelableTask
public abstract class ToolTask : Microsoft.Build.Utilities.Task, Microsoft.Build.Framework.ICancelableTask
type ToolTask = class
    inherit Task
    interface ICancelableTask
    interface ITask
Public MustInherit Class ToolTask
Inherits Task
Implements ICancelableTask
継承
ToolTaskToolTaskToolTaskToolTask
派生
実装

次の例ではToolTaskIlasm (IL アセンブラー)を実行するを作成します。The following example creates a ToolTask that runs Ilasm.exe (IL Assembler). CommandLineBuilderToolLocationHelperおよびTaskLoggingHelperの各クラスは、タスクを実行するために必要な情報を生成するために使用されます。The CommandLineBuilder, ToolLocationHelper, and TaskLoggingHelper classes are used to generate the information needed to run the task.

using System;
using System.Collections;
using System.Text;
using Microsoft.Build.Utilities;
using Microsoft.Build.Framework;

namespace MSBuildTasks
{
    /// <summary>
    /// A very simple and incomplete ToolTask to wrap the ILASM.EXE tool.
    /// </summary>
    public class ILAsm : ToolTask
    {
        #region Member Data
        /// <summary>
        /// Gets the collection of parameters used by the task class.
        /// </summary>
        /// <value>Parameter bag.</value>
        protected internal Hashtable Bag
        {
            get
            {
                return bag;
            }
        }

        private Hashtable bag = new Hashtable();
        #endregion

        #region ILAsm Task Properties
        /// <summary>
        /// The Source file that is to be compled (.il)
        /// </summary>
        public ITaskItem Source
        {
            get { return Bag["Source"] as ITaskItem; }
            set { Bag["Source"] = value; }
        }
        /// <summary>
        /// Either EXE or DLL indicating the assembly type to be generated
        /// </summary>
        public string TargetType
        {
            get { return Bag["TargetType"] as string; }
            set { Bag["TargetType"] = value; }
        }
        #endregion

        #region ToolTask Members
        protected override string ToolName
        {
            get { return "ILAsm.exe"; }
        }

        /// <summary>
        /// Use ToolLocationHelper to find ILASM.EXE in the Framework directory
        /// </summary>
        /// <returns></returns>
        protected override string GenerateFullPathToTool()
        {
            // Ask ToolLocationHelper to find ILASM.EXE - it will look in the latest framework directory available
            return ToolLocationHelper.GetPathToDotNetFrameworkFile(ToolName, TargetDotNetFrameworkVersion.VersionLatest);
        }
        #endregion

        #region ILAsm Task Members
        /// <summary>
        /// Construct the command line from the task properties by using the CommandLineBuilder
        /// </summary>
        /// <returns></returns>
        protected override string GenerateCommandLineCommands()
        {
            CommandLineBuilder builder = new CommandLineBuilder();

            // We don't need the tool's logo information shown
            builder.AppendSwitch("/nologo");

            string targetType = Bag["TargetType"] as string;
            // Be explicit with our switches
            if (targetType != null)
            {
                if (String.Compare(targetType, "DLL", true) == 0)
                {
                    builder.AppendSwitch("/DLL");
                }
                else if (String.Compare(targetType, "EXE", true) == 0)
                {
                    builder.AppendSwitch("/EXE");
                }
                else
                {
                    Log.LogWarning("Invalid TargetType (valid values are DLL and EXE) specified: {0}", targetType);
                }
            }

            // Add the filename that we want the tool to process
            builder.AppendFileNameIfNotNull(Bag["Source"] as ITaskItem);

            // Log a High importance message stating the file that we are assembling
            Log.LogMessage(MessageImportance.High, "Assembling {0}", Bag["Source"]);

            // We have all of our switches added, return the commandline as a string
            return builder.ToString();
        }
        #endregion
    }
}
Imports System.Collections
Imports System.Text
Imports Microsoft.Build.Utilities
Imports Microsoft.Build.Framework

Namespace MSBuildTasks

    ''' <summary>
    ''' A very simple and incomplete ToolTask to wrap the ILASM.EXE tool.
    ''' </summary>
    Public Class ILAsm
        Inherits ToolTask

        ''' <summary>
        ''' Parameter bag.
        ''' </summary>
        Protected Friend ReadOnly Property Bag() As Hashtable
            Get
                Return propertyBag
            End Get
        End Property

        Private propertyBag As New Hashtable()

        ''' <summary>
        ''' The Source file that is to be compled (.il)
        ''' </summary>
        Public Property [Source]() As ITaskItem
            Get
                Return Bag("Source")
            End Get
            Set(ByVal value As ITaskItem)
                Bag("Source") = value
            End Set
        End Property

        ''' <summary>
        ''' Either EXE or DLL indicating the assembly type to be generated
        ''' </summary>
        Public Property TargetType() As String
            Get
                Return Bag("TargetType")
            End Get
            Set(ByVal value As String)
                Bag("TargetType") = value
            End Set
        End Property '

        Protected Overrides ReadOnly Property ToolName() As String
            Get
                Return "ILAsm.exe"
            End Get
        End Property

        ''' <summary>
        ''' Use ToolLocationHelper to find ILASM.EXE in the Framework directory
        ''' </summary>
        Protected Overrides Function GenerateFullPathToTool() As String
            ' Ask ToolLocationHelper to find ILASM.EXE - it will look in the latest framework directory available
            Return ToolLocationHelper.GetPathToDotNetFrameworkFile(ToolName, TargetDotNetFrameworkVersion.VersionLatest)
        End Function

        ''' <summary>
        ''' Construct the command line from the task properties by using the CommandLineBuilder
        ''' </summary>
        Protected Overrides Function GenerateCommandLineCommands() As String
            Dim builder As New CommandLineBuilder()

            ' We don't need the tool's logo information shown
            builder.AppendSwitch("/nologo")

            Dim targetType As String = Bag("TargetType")
            ' Be explicit with our switches
            If Not (targetType Is Nothing) Then
                If [String].Compare(targetType, "DLL", True) = 0 Then
                    builder.AppendSwitch("/DLL")
                ElseIf [String].Compare(targetType, "EXE", True) = 0 Then
                    builder.AppendSwitch("/EXE")
                Else
                    Log.LogWarning("Invalid TargetType (valid values are DLL and EXE) specified: {0}", targetType)
                End If
            End If
            ' Add the filename that we want the tool to process
            builder.AppendFileNameIfNotNull(Bag("Source"))

            ' Log a High importance message stating the file that we are assembling
            Log.LogMessage(MessageImportance.High, "Assembling {0}", Bag("Source"))

            ' We have all of our switches added, return the commandline as a string
            Return builder.ToString()
        End Function
    End Class
End Namespace

注釈

この抽象クラスは、コマンドラインツールをラップするタスクのメソッドとプロパティの既定の実装を提供します。This abstract class provides default implementations for the methods and properties of a task that wraps a command line tool.

コンストラクター

ToolTask() ToolTask() ToolTask() ToolTask()

ToolTask クラスの新しいインスタンスを初期化します。Initializes a new instance of the ToolTask class.

ToolTask(ResourceManager) ToolTask(ResourceManager) ToolTask(ResourceManager) ToolTask(ResourceManager)

ToolTask を指定して、ResourceManager クラスの新しいインスタンスを初期化します。Initializes a new instance of the ToolTask class with the specified ResourceManager.

ToolTask(ResourceManager, String) ToolTask(ResourceManager, String) ToolTask(ResourceManager, String) ToolTask(ResourceManager, String)

指定した ToolTask およびヘルプ キーワード プレフィックスを使用して、ResourceManager クラスの新しいインスタンスを初期化します。Initializes a new instance of the ToolTask class with the specified ResourceManager and Help keyword prefix.

プロパティ

BuildEngine BuildEngine BuildEngine BuildEngine

タスクで使用する IBuildEngine オブジェクトのインスタンスを取得または設定します。Gets or sets the instance of the IBuildEngine object used by the task.

(Inherited from Task)
BuildEngine2 BuildEngine2 BuildEngine2 BuildEngine2

タスクで使用する IBuildEngine2 オブジェクトのインスタンスを取得します。Gets the instance of the IBuildEngine2 object used by the task.

(Inherited from Task)
BuildEngine3 BuildEngine3 BuildEngine3 BuildEngine3

タスクで使用する IBuildEngine3 オブジェクトのインスタンスを取得します。Gets the instance of the IBuildEngine3 object used by the task.

(Inherited from Task)
BuildEngine4 BuildEngine4 BuildEngine4 BuildEngine4

タスクで使用する IBuildEngine4 オブジェクトのインスタンスを取得します。Gets the instance of the IBuildEngine4 object used by the task.

(Inherited from Task)
EchoOff EchoOff EchoOff EchoOff

コマンド ラインのエコーがオフかどうかを示す値を取得または設定します。Gets or sets a value that indicates whether command line echoing is turned off.

EnvironmentOverride EnvironmentOverride EnvironmentOverride EnvironmentOverride

環境変数の名前と値のペアのセットを取得します。Gets a set of environment variable name-value pairs. カスタム タスク クラス (ToolTask から派生するクラス) でオーバーライドするために用意されています。オーバーライドして新しい環境変数や変更した環境変数のセットを返すことで、関連付けられているツールの実行コンテキストを作成できます。Designed to be overridden in a custom task class (derived from ToolTask) to return a set of new or altered environment variables to create the execution context of the associated tool.

EnvironmentVariables EnvironmentVariables EnvironmentVariables 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 ExitCode ExitCode ExitCode

実行可能ファイルから返された終了コードを取得します。Gets the returned exit code of the executable file.

HasLoggedErrors HasLoggedErrors HasLoggedErrors HasLoggedErrors

この ToolTask がエラーを記録したかどうか。Whether this ToolTask has logged any errors

HelpKeywordPrefix HelpKeywordPrefix HelpKeywordPrefix HelpKeywordPrefix

リソース名からヘルプ キーワードを作成するために使用するプレフィックスを取得または設定します。Gets or sets the prefix used to compose Help keywords from resource names.

(Inherited from Task)
HostObject HostObject HostObject HostObject

このタスクに関連付けられているホスト オブジェクトを取得または設定します。Gets or sets the host object associated with the task.

(Inherited from Task)
Log Log Log Log

タスク ログ メソッドを格納している TaskLoggingHelper クラスのインスタンスを取得します。Gets an instance of a TaskLoggingHelper class containing task logging methods.

(Inherited from Task)
LogStandardErrorAsError LogStandardErrorAsError LogStandardErrorAsError LogStandardErrorAsError

標準エラー ストリームで受け取ったすべてのメッセージをエラーとして記録するかどうか。Should ALL messages received on the standard error stream be logged as errors.

ResponseFileEncoding ResponseFileEncoding ResponseFileEncoding ResponseFileEncoding

応答ファイルの Encoding を取得します。Gets the Encoding of the response file.

StandardErrorEncoding StandardErrorEncoding StandardErrorEncoding StandardErrorEncoding

タスクの標準エラー ストリームの Encoding を取得します。Gets the Encoding of the standard error stream of the task.

StandardErrorImportance StandardErrorImportance StandardErrorImportance StandardErrorImportance

タスク パラメーター:標準エラー ストリームのテキストを記録するときに使用する重要度です。Task Parameter: Importance with which to log text from the standard error stream.

StandardErrorImportanceToUse StandardErrorImportanceToUse StandardErrorImportanceToUse StandardErrorImportanceToUse

標準のエラー メッセージをログに記録する実際の重要度を取得します。Gets the actual importance at which standard error messages will be logged.

StandardErrorLoggingImportance StandardErrorLoggingImportance StandardErrorLoggingImportance StandardErrorLoggingImportance

エラーを記録するために使用する MessageImportance を取得します。Gets the MessageImportance with which to log errors.

StandardOutputEncoding StandardOutputEncoding StandardOutputEncoding StandardOutputEncoding

タスクの標準出力ストリームの Encoding を取得します。Gets the Encoding of the standard output stream of the task.

StandardOutputImportance StandardOutputImportance StandardOutputImportance StandardOutputImportance

タスク パラメーター:標準出力ストリームのテキストを記録するときに使用する重要度です。Task Parameter: Importance with which to log text from the standard out stream.

StandardOutputImportanceToUse StandardOutputImportanceToUse StandardOutputImportanceToUse StandardOutputImportanceToUse

標準の出力メッセージをログに記録する実際の重要度を取得します。Gets the actual importance at which standard out messages will be logged.

StandardOutputLoggingImportance StandardOutputLoggingImportance StandardOutputLoggingImportance StandardOutputLoggingImportance

エラーを記録するために使用する MessageImportance を取得します。Gets the MessageImportance with which to log errors.

TaskProcessTerminationTimeout TaskProcessTerminationTimeout TaskProcessTerminationTimeout TaskProcessTerminationTimeout

タスクがタイムアウトして強制終了されるまでに待機する時間。A timeout to wait for a task to terminate before killing it. 単位はミリ秒です。In milliseconds.

TaskResources TaskResources TaskResources TaskResources

タスクに関連付けられているカルチャ固有のリソースを取得または設定します。Gets or sets the culture-specific resources associated with the task.

(Inherited from Task)
Timeout Timeout Timeout Timeout

実行可能なタスクが終了してからの時間を取得または設定します。Gets or sets the amount of time after which the task executable is terminated.

ToolCanceled ToolCanceled ToolCanceled ToolCanceled

ツールが取り消された場合の通知に使用されます。Used to signal when a tool has been cancelled.

ToolExe ToolExe ToolExe ToolExe

プロジェクトで設定すると、タスクの ToolName をオーバーライドできます。Projects may set this to override a task's ToolName. タスクでオーバーライドすると、それを防ぐことができます。Tasks may override this to prevent that.

ToolName ToolName ToolName ToolName

実行する実行可能ファイルの名前を取得します。Gets the name of the executable file to run.

ToolPath ToolPath ToolPath ToolPath

実行する実行可能ファイルへのパスを取得または設定します。Gets or sets the path of the executable file to run.

UseCommandProcessor UseCommandProcessor UseCommandProcessor UseCommandProcessor

ツール タスクで直接コマンドを実行する代わりに、コマンド ラインのバッチ ファイルを作成し、そのファイルをコマンド プロセッサを使用して実行するかどうかを示す値を取得または設定します。Gets or sets a value that indicates whether 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.

YieldDuringToolExecution YieldDuringToolExecution YieldDuringToolExecution YieldDuringToolExecution

タスクがツールの実行中にノードを生成するかどうかを示す値を取得または設定します。Gets or sets a value that indicates whether the task will yield the node during tool execution.

メソッド

CallHostObjectToExecute() CallHostObjectToExecute() CallHostObjectToExecute() CallHostObjectToExecute()

タスクの作業を実行するホスト オブジェクトを呼び出します。Calls the host object to perform the work of the task.

Cancel() Cancel() Cancel() Cancel()

タスクを実行しているプロセスを取り消します。正しく終了するように要求し、しばらく待機してから強制終了します。Cancels the process executing the task by asking it to close nicely, then after a short period, forcing termination.

DeleteTempFile(String) DeleteTempFile(String) DeleteTempFile(String) DeleteTempFile(String)

指定した一時ファイルを削除します。Deletes the specified temporary file.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
Execute() Execute() Execute() Execute()

指定したタスク パラメーターを使用して、実行可能ファイルを実行します。Runs the executable file with the specified task parameters.

ExecuteTool(String, String, String) ExecuteTool(String, String, String) ExecuteTool(String, String, String) ExecuteTool(String, String, String)

一時応答 (.rsp) ファイルを作成し、実行可能ファイルを実行します。Creates a temporary response (.rsp) file and runs the executable file.

GenerateCommandLineCommands() GenerateCommandLineCommands() GenerateCommandLineCommands() GenerateCommandLineCommands()

実行可能ファイルに直接渡すコマンド ライン引数を格納している文字列値を返します。Returns a string value containing the command line arguments to pass directly to the executable file.

GenerateFullPathToTool() GenerateFullPathToTool() GenerateFullPathToTool() GenerateFullPathToTool()

実行可能ファイルへの絶対パスを返します。Returns the fully qualified path to the executable file.

GenerateResponseFileCommands() GenerateResponseFileCommands() GenerateResponseFileCommands() GenerateResponseFileCommands()

実行可能ファイルを実行する前に応答 (.rsp) ファイルに追加するコマンド ライン引数を格納している文字列値を返します。Returns a string value containing the command line arguments to add to the response (.rsp) file before running the executable file.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetProcessStartInfo(String, String, String) GetProcessStartInfo(String, String, String) GetProcessStartInfo(String, String, String) GetProcessStartInfo(String, String, String)

ツールを実行する子プロセスを生成するために必要な情報を初期化します。Initializes the information required to spawn the process executing the tool.

GetResponseFileSwitch(String) GetResponseFileSwitch(String) GetResponseFileSwitch(String) GetResponseFileSwitch(String)

応答 (.rsp) ファイルを指定するために実行可能ファイルで使用するコマンド ライン スイッチを返します。Returns the command line switch used by the executable file to specify a response (.rsp) file.

GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
GetWorkingDirectory() GetWorkingDirectory() GetWorkingDirectory() GetWorkingDirectory()

実行可能ファイルを実行するディレクトリを返します。Returns the directory in which to run the executable file.

HandleTaskExecutionErrors() HandleTaskExecutionErrors() HandleTaskExecutionErrors() HandleTaskExecutionErrors()

実行可能ファイルによって生成された実行エラーを処理します。Handles execution errors raised by the executable file.

InitializeHostObject() InitializeHostObject() InitializeHostObject() InitializeHostObject()

タスクのホスト オブジェクトを初期化します。Initializes the host object of the task.

LogEventsFromTextOutput(String, MessageImportance) LogEventsFromTextOutput(String, MessageImportance) LogEventsFromTextOutput(String, MessageImportance) LogEventsFromTextOutput(String, MessageImportance)

単一行のテキストを解析して、標準形式のエラーまたは警告を識別します。Parses a single line of text to identify any errors or warnings in canonical format.

LogPathToTool(String, String) LogPathToTool(String, String) LogPathToTool(String, String) LogPathToTool(String, String)

登録されているすべてのロガーにツール名とパスを記録します。Logs the tool name and path to all registered loggers.

LogToolCommand(String) LogToolCommand(String) LogToolCommand(String) LogToolCommand(String)

登録されているすべてのロガーに実行の開始点を記録します。Logs the starting point of the run to all registered loggers.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
ResponseFileEscape(String) ResponseFileEscape(String) ResponseFileEscape(String) ResponseFileEscape(String)

応答ファイルの内容をエスケープするためのオーバーライド可能なメソッド。Overridable method to escape the content of the response file.

SkipTaskExecution() SkipTaskExecution() SkipTaskExecution() SkipTaskExecution()

タスクの実行をスキップする必要があるかどうかを示します。Indicates whether task execution should be skipped.

ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)
ValidateParameters() ValidateParameters() ValidateParameters() ValidateParameters()

すべてのタスク パラメーターが有効かどうかを示します。Indicates whether all task parameters are valid.

適用対象