CommandLineBuilderとは? わかりやすく解説

CommandLineBuilder クラス

メモ : このクラスは、.NET Framework version 2.0 で新しく追加されたものです。

コマンド ラインを構築するためのユーティリティ メソッドを構成します。

名前空間: Microsoft.Build.Utilities
アセンブリ: Microsoft.Build.Utilities (microsoft.build.utilities.dll 内)
構文構文

Public Class CommandLineBuilder
Dim instance As CommandLineBuilder
public class CommandLineBuilder
public ref class CommandLineBuilder
public class CommandLineBuilder
public class CommandLineBuilder
使用例使用例

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
    }
}
継承階層継承階層
System.Object
  Microsoft.Build.Utilities.CommandLineBuilder
     Microsoft.Build.Tasks.CommandLineBuilderExtension
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
CommandLineBuilder メンバ
Microsoft.Build.Utilities 名前空間

CommandLineBuilder コンストラクタ

メモ : このコンストラクタは、.NET Framework version 2.0 で新しく追加されたものです。

CommandLineBuilder クラスの新しいインスタンスを初期化します。

名前空間: Microsoft.Build.Utilities
アセンブリ: Microsoft.Build.Utilities (microsoft.build.utilities.dll 内)
構文構文

Dim instance As New CommandLineBuilder
public CommandLineBuilder ()
public:
CommandLineBuilder ()
public CommandLineBuilder ()
public function CommandLineBuilder ()
使用例使用例

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
    }
}
.NET Framework のセキュリティ.NET Framework のセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
CommandLineBuilder クラス
CommandLineBuilder メンバ
Microsoft.Build.Utilities 名前空間

CommandLineBuilder プロパティ


プロテクト プロパティプロテクト プロパティ

参照参照

関連項目

CommandLineBuilder クラス
Microsoft.Build.Utilities 名前空間

CommandLineBuilder メソッド


パブリック メソッドパブリック メソッド

( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド AppendFileNameIfNotNull オーバーロードされます。 パラメータで表されるファイル名をコマンド ラインに追加します。必要な場合は引用符が挿入されます。
パブリック メソッド AppendFileNamesIfNotNull オーバーロードされます。 ファイル名のリストをコマンド ラインに追加します。必要な場合は引用符が挿入されます。
パブリック メソッド AppendSwitch 指定したスイッチをコマンド ラインに追加します。
パブリック メソッド AppendSwitchIfNotNull オーバーロードされます。 スイッチをコマンド ラインに追加します。
パブリック メソッド AppendSwitchUnquotedIfNotNull オーバーロードされます。 引用符でスイッチ パラメータを囲まずに、スイッチをコマンド ラインに追加します。
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。)
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。)
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 ( Object から継承されます。)
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。)
パブリック メソッド ToString オーバーライドされます。 コマンド ラインを文字列として返します。
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

CommandLineBuilder クラス
Microsoft.Build.Utilities 名前空間

CommandLineBuilder メンバ

コマンド ラインを構築するためのユーティリティ メソッドを構成します。

CommandLineBuilder データ型で公開されるメンバを以下の表に示します。


パブリック コンストラクタパブリック コンストラクタ
  名前 説明
パブリック メソッド CommandLineBuilder CommandLineBuilder クラスの新しいインスタンスを初期化します。
プロテクト プロパティプロテクト プロパティ
パブリック メソッドパブリック メソッド
( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド AppendFileNameIfNotNull オーバーロードされます。 パラメータで表されるファイル名をコマンド ラインに追加します。必要な場合は引用符が挿入されます。
パブリック メソッド AppendFileNamesIfNotNull オーバーロードされます。 ファイル名のリストをコマンド ラインに追加します。必要な場合は引用符が挿入されます。
パブリック メソッド AppendSwitch 指定したスイッチをコマンド ラインに追加します。
パブリック メソッド AppendSwitchIfNotNull オーバーロードされます。 スイッチをコマンド ラインに追加します。
パブリック メソッド AppendSwitchUnquotedIfNotNull オーバーロードされます。 引用符でスイッチ パラメータを囲まずに、スイッチをコマンド ラインに追加します。
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。)
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。)
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。)
パブリック メソッド ToString オーバーライドされます。 コマンド ラインを文字列として返します。
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

CommandLineBuilder クラス
Microsoft.Build.Utilities 名前空間



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「CommandLineBuilder」の関連用語

CommandLineBuilderのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



CommandLineBuilderのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS