ToolTask クラス
アセンブリ: Microsoft.Build.Utilities (microsoft.build.utilities.dll 内)



MSIL アセンブラ (Ilasm.exe) を実行する ToolTask を作成する例を次に示します。タスクの実行に必要な情報を生成するために、CommandLineBuilder クラス、ToolLocationHelper クラス、および TaskLoggingHelper クラスが使用されています。
Imports System 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
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 } }

Microsoft.Build.Utilities.Task
Microsoft.Build.Utilities.ToolTask
Microsoft.Build.Tasks.ToolTaskExtension


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


ToolTask コンストラクタ ()
アセンブリ: Microsoft.Build.Utilities (microsoft.build.utilities.dll 内)



Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


ToolTask コンストラクタ

名前 | 説明 |
---|---|
ToolTask () | ToolTask クラスの新しいインスタンスを初期化します。 |
ToolTask (ResourceManager) | ResourceManager を指定して、ToolTask クラスの新しいインスタンスを初期化します。 |
ToolTask (ResourceManager, String) | 指定した ResourceManager およびヘルプ キーワード プレフィックスを使用して、ToolTask クラスの新しいインスタンスを初期化します。 |

ToolTask コンストラクタ (ResourceManager)
アセンブリ: Microsoft.Build.Utilities (microsoft.build.utilities.dll 内)



Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


ToolTask コンストラクタ (ResourceManager, String)
アセンブリ: Microsoft.Build.Utilities (microsoft.build.utilities.dll 内)

Dim taskResources As ResourceManager Dim helpKeywordPrefix As String Dim instance As New ToolTask(taskResources, helpKeywordPrefix)


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


ToolTask プロパティ

名前 | 説明 | |
---|---|---|
![]() | BuildEngine | タスクによって使用される IBuildEngine オブジェクトのインスタンスを取得または設定します。 ( Task から継承されます。) |
![]() | ExitCode | 実行可能ファイルから返された終了コードを取得します。 |
![]() | HostObject | タスクに関連付けられているホスト オブジェクトを取得または設定します。 ( Task から継承されます。) |
![]() | Log | タスク ログ メソッドを格納している TaskLoggingHelper クラスのインスタンスを取得します。 ( Task から継承されます。) |
![]() | Timeout | 実行可能なタスクが終了してからの時間を取得または設定します。 |
![]() | ToolPath | 実行する実行可能ファイルへのパスを取得または設定します。 |

名前 | 説明 | |
---|---|---|
![]() | EnvironmentOverride | PATH 環境変数のオーバーライド値を取得します。 |
![]() | HelpKeywordPrefix | リソース名からヘルプ キーワードを作成するために使用するプレフィックスを取得または設定します。 ( Task から継承されます。) |
![]() | ResponseFileEncoding | 応答ファイルの Encoding を取得します。 |
![]() | StandardErrorEncoding | タスクの標準エラー ストリームの Encoding を取得します。 |
![]() | StandardErrorLoggingImportance | エラーを記録するために使用する MessageImportance を取得します。 |
![]() | StandardOutputEncoding | タスクの標準出力ストリームの Encoding を取得します。 |
![]() | StandardOutputLoggingImportance | エラーを記録するために使用する MessageImportance を取得します。 |
![]() | TaskResources | タスクに関連付けられているカルチャ固有のリソースを取得または設定します。 ( Task から継承されます。) |
![]() | ToolName | 実行する実行可能ファイルの名前を取得します。 |

ToolTask メソッド

名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) |
![]() | Execute | オーバーライドされます。 指定したタスク パラメータを使用して、実行可能ファイルを実行します。 |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | CallHostObjectToExecute | タスクの処理を実行するホスト オブジェクトを呼び出します。 |
![]() | ExecuteTool | 一時応答 (.rsp) ファイルを作成し、実行可能ファイルを実行します。 |
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | GenerateCommandLineCommands | 実行可能ファイルに直接渡すコマンド ライン引数を格納している文字列値を返します。 |
![]() | GenerateFullPathToTool | 実行可能ファイルへの絶対パスを返します。 |
![]() | GenerateResponseFileCommands | 実行可能ファイルを実行する前に応答 (.rsp) ファイルに追加するコマンド ライン引数を格納している文字列値を返します。 |
![]() | GetResponseFileSwitch | 応答 (.rsp) ファイルを指定するために実行可能ファイルによって使用されたコマンド ライン スイッチを返します。 |
![]() | GetWorkingDirectory | 実行可能ファイルを実行するディレクトリを返します。 |
![]() | HandleTaskExecutionErrors | 実行可能ファイルによって生成された実行エラーを処理します。 |
![]() | InitializeHostObject | タスクのホスト オブジェクトを初期化します。 |
![]() | LogEventsFromTextOutput | 単一行のテキストを解析して、標準形式のエラーまたは警告を識別します。 |
![]() | LogPathToTool | ツール名および登録されているすべての logger へのパスを記録します。 |
![]() | LogToolCommand | 実行の開始点を登録されているすべての logger に記録します。 |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |
![]() | SkipTaskExecution | タスクの実行をスキップする必要があるかどうかを示します。 |
![]() | ValidateParameters | すべてのタスク パラメータが有効かどうかを示します。 |

ToolTask メンバ
派生フォームでオーバーライドされると、コマンド ライン ツールをラップするタスクに機能を提供します。
ToolTask データ型で公開されるメンバを以下の表に示します。


名前 | 説明 | |
---|---|---|
![]() | BuildEngine | タスクによって使用される IBuildEngine オブジェクトのインスタンスを取得または設定します。(Task から継承されます。) |
![]() | ExitCode | 実行可能ファイルから返された終了コードを取得します。 |
![]() | HostObject | タスクに関連付けられているホスト オブジェクトを取得または設定します。(Task から継承されます。) |
![]() | Log | タスク ログ メソッドを格納している TaskLoggingHelper クラスのインスタンスを取得します。(Task から継承されます。) |
![]() | Timeout | 実行可能なタスクが終了してからの時間を取得または設定します。 |
![]() | ToolPath | 実行する実行可能ファイルへのパスを取得または設定します。 |

名前 | 説明 | |
---|---|---|
![]() | EnvironmentOverride | PATH 環境変数のオーバーライド値を取得します。 |
![]() | HelpKeywordPrefix | リソース名からヘルプ キーワードを作成するために使用するプレフィックスを取得または設定します。(Task から継承されます。) |
![]() | ResponseFileEncoding | 応答ファイルの Encoding を取得します。 |
![]() | StandardErrorEncoding | タスクの標準エラー ストリームの Encoding を取得します。 |
![]() | StandardErrorLoggingImportance | エラーを記録するために使用する MessageImportance を取得します。 |
![]() | StandardOutputEncoding | タスクの標準出力ストリームの Encoding を取得します。 |
![]() | StandardOutputLoggingImportance | エラーを記録するために使用する MessageImportance を取得します。 |
![]() | TaskResources | タスクに関連付けられているカルチャ固有のリソースを取得または設定します。(Task から継承されます。) |
![]() | ToolName | 実行する実行可能ファイルの名前を取得します。 |

名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) |
![]() | Execute | オーバーライドされます。 指定したタスク パラメータを使用して、実行可能ファイルを実行します。 |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | CallHostObjectToExecute | タスクの処理を実行するホスト オブジェクトを呼び出します。 |
![]() | ExecuteTool | 一時応答 (.rsp) ファイルを作成し、実行可能ファイルを実行します。 |
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | GenerateCommandLineCommands | 実行可能ファイルに直接渡すコマンド ライン引数を格納している文字列値を返します。 |
![]() | GenerateFullPathToTool | 実行可能ファイルへの絶対パスを返します。 |
![]() | GenerateResponseFileCommands | 実行可能ファイルを実行する前に応答 (.rsp) ファイルに追加するコマンド ライン引数を格納している文字列値を返します。 |
![]() | GetResponseFileSwitch | 応答 (.rsp) ファイルを指定するために実行可能ファイルによって使用されたコマンド ライン スイッチを返します。 |
![]() | GetWorkingDirectory | 実行可能ファイルを実行するディレクトリを返します。 |
![]() | HandleTaskExecutionErrors | 実行可能ファイルによって生成された実行エラーを処理します。 |
![]() | InitializeHostObject | タスクのホスト オブジェクトを初期化します。 |
![]() | LogEventsFromTextOutput | 単一行のテキストを解析して、標準形式のエラーまたは警告を識別します。 |
![]() | LogPathToTool | ツール名および登録されているすべての logger へのパスを記録します。 |
![]() | LogToolCommand | 実行の開始点を登録されているすべての logger に記録します。 |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |
![]() | SkipTaskExecution | タスクの実行をスキップする必要があるかどうかを示します。 |
![]() | ValidateParameters | すべてのタスク パラメータが有効かどうかを示します。 |

- ToolTaskのページへのリンク