InstallContext クラス
アセンブリ: System.Configuration.Install (system.configuration.install.dll 内)


通常、InstallContext は、アセンブリをインストールする InstallUtil.exe などのインストール実行可能ファイルによって作成されます。セットアップ プログラム (インストール実行可能ファイル) は、既定のログ ファイル パスとコマンド ライン パラメータを渡して InstallContext コンストラクタを呼び出します。
セットアップ プログラムは、Install、Commit、Rollback、または Uninstall の各メソッドを呼び出す前に、Installer の Context プロパティとして InstallContext のインスタンスを設定します。これらのメソッドを呼び出す前に、Installers プロパティのインストーラ コレクションを格納している Installer が、それぞれが格納している各インストーラの Context プロパティを設定します。
Parameters プロパティは、インストール実行可能ファイルの実行時に入力されたコマンド ラインを解析した結果を格納します。このプロパティには、ログ ファイルへのパス、コンソールにログ情報を表示するかどうか、インストール中にユーザー インターフェイスを表示するかどうかなどの情報が格納されます。コマンド ライン パラメータが true かどうかを確認するには、IsParameterTrue メソッドを呼び出します。
ステータス メッセージをインストール ログ ファイルとコンソールに書き込むには、LogMessage メソッドを使用します。

InstallContext クラスの InstallContext コンストラクタ、Parameters プロパティ、および LogMessage と IsParameterTrue の各メソッドの例を次に示します。
インストーラの Install メソッドが呼び出されると、コマンド ラインのパラメータがチェックされます。それに応じて、進行状況のメッセージをコンソールに表示し、指定したログ ファイルにも保存します。
引数なしでプログラムを起動すると、空の InstallContext が作成されます。"/LogFile" および "/LogtoConsole" を指定した場合、それぞれの引数を InstallContext に渡して、InstallContext が作成されます。
Imports System Imports System.ComponentModel Imports System.Configuration.Install Imports System.Collections Imports System.Collections.Specialized Namespace MyInstallContextNamespace <RunInstallerAttribute(True)> Class InstallContext_Example Inherits Installer Public myInstallContext As InstallContext Public Overrides Sub Install(mySavedState As IDictionary) Dim myStringDictionary As StringDictionary = myInstallContext.Parameters If myStringDictionary.Count = 0 Then Console.WriteLine("No parameters have been entered in the command line" + _ "hence, the install will take place in the silent mode") Else ' Check wether the "LogtoConsole" parameter has been set. If myInstallContext.IsParameterTrue("LogtoConsole") = True Then ' Display the message to the console and add it to the logfile. myInstallContext.LogMessage("The 'Install' method has been called") End If End If ' The 'Install procedure should be added here. End Sub 'Install Public Overrides Sub Uninstall(mySavedState As IDictionary) ' The 'Uninstall' procedure should be added here. End Sub 'Uninstall Public Overrides Sub Rollback(mySavedState As IDictionary) If myInstallContext.IsParameterTrue("LogtoConsole") = True Then myInstallContext.LogMessage("The 'Rollback' method has been called") End If ' The 'Rollback' procedure should be added here. End Sub 'Rollback Public Overrides Sub Commit(mySavedState As IDictionary) If myInstallContext.IsParameterTrue("LogtoConsole") = True Then myInstallContext.LogMessage("The 'Commit' method has been called") End If ' The 'Commit' procedure should be added here. End Sub 'Commit ' Entry point which delegates to C-style main Private Function Public Overloads Shared Sub Main() Main(System.Environment.GetCommandLineArgs()) End Sub Overloads Shared Sub Main(args() As String) Dim myInstallObject As New InstallContext_Example() Dim mySavedState = New Hashtable() If args.Length < 2 Then ' There are no command line arguments, create an empty 'InstallContext'. myInstallObject.myInstallContext = New InstallContext() ElseIf args.Length = 2 And args(1) = "/?" Then ' Display the 'Help' for this utility. Console.WriteLine("Specify the '/Logfile' and '/LogtoConsole' parameters") Console.WriteLine("Example: ") Console.WriteLine("InstallContext_InstallContext.exe /LogFile=example.log" + _ " /LogtoConsole=true") Return Else ' Create an InstallContext object with the given parameters. Dim commandLine() As String = New String(args.Length - 2) {} Dim i As Integer For i = 1 To args.Length - 1 commandLine(i-1) = args(i) Next i myInstallObject.myInstallContext = _ New InstallContext("/LogFile:example.log", commandLine) End If Try ' Call the 'Install' method. myInstallObject.Install(mySavedState) ' Call the 'Commit' method. myInstallObject.Commit(mySavedState) Catch ' Call the 'Rollback' method. myInstallObject.Rollback( mySavedState ) End Try End Sub 'Main End Class 'InstallContext_Example End Namespace 'MyInstallContextNamespace
using System; using System.ComponentModel; using System.Configuration.Install; using System.Collections; using System.Collections.Specialized; namespace MyInstallContextNamespace { [RunInstallerAttribute(true)] class InstallContext_Example : Installer { public InstallContext myInstallContext; public override void Install( IDictionary mySavedState ) { StringDictionary myStringDictionary = myInstallContext.Parameters; if( myStringDictionary.Count == 0 ) { Console.WriteLine( "No parameters have been entered in the command line " +"hence, the install will take place in the silent mode" ); } else { // Check whether the "LogtoConsole" parameter has been set. if( myInstallContext.IsParameterTrue( "LogtoConsole" ) == true ) { // Display the message to the console and add it to the logfile. myInstallContext.LogMessage( "The 'Install' method has been called" ); } } // The 'Install procedure should be added here. } public override void Uninstall( IDictionary mySavedState ) { // The 'Uninstall' procedure should be added here. } public override void Rollback( IDictionary mySavedState ) { if( myInstallContext.IsParameterTrue( "LogtoConsole" ) == true ) { myInstallContext.LogMessage( "The 'Rollback' method has been called" ); } // The 'Rollback' procedure should be added here. } public override void Commit( IDictionary mySavedState ) { if( myInstallContext.IsParameterTrue( "LogtoConsole" ) == true ) { myInstallContext.LogMessage( "The 'Commit' method has been called" ); } // The 'Commit' procedure should be added here. } static void Main( string[] args ) { InstallContext_Example myInstallObject = new InstallContext_Example(); IDictionary mySavedState = new Hashtable(); if( args.Length < 1 ) { // There are no command line arguments, create an empty 'InstallContext'. myInstallObject.myInstallContext = new InstallContext(); } else if( ( args.Length == 1 ) && ( args[ 0 ] == "/?" ) ) { // Display the 'Help' for this utility. Console.WriteLine( "Specify the '/Logfile' and '/LogtoConsole' parameters" ); Console.WriteLine( "Example: " ); Console.WriteLine( "InstallContext_InstallContext.exe /LogFile=example.log" +" /LogtoConsole=true" ); return; } else { // Create an InstallContext object with the given parameters. String[] commandLine = new string[ args.Length ]; for( int i = 0; i < args.Length; i++ ) { commandLine[ i ] = args[ i ]; } myInstallObject.myInstallContext = new InstallContext( args[ 0 ], commandLine); } try { // Call the 'Install' method. myInstallObject.Install( mySavedState ); // Call the 'Commit' method. myInstallObject.Commit( mySavedState ); } catch( Exception ) { // Call the 'Rollback' method. myInstallObject.Rollback( mySavedState ); } } } }
#using <System.dll> #using <System.Configuration.Install.dll> using namespace System; using namespace System::ComponentModel; using namespace System::Configuration::Install; using namespace System::Collections; using namespace System::Collections::Specialized; [RunInstallerAttribute(true)] ref class InstallContext_Example: public Installer { public: InstallContext^ myInstallContext; virtual void Install( IDictionary^ mySavedState ) override { StringDictionary^ myStringDictionary = myInstallContext->Parameters; if ( myStringDictionary->Count == 0 ) { Console::Write( "No parameters have been entered in the command line " ); Console::WriteLine( "hence, the install will take place in the silent mode" ); } else { // Check whether the "LogtoConsole" parameter has been set. if ( myInstallContext->IsParameterTrue( "LogtoConsole" ) ) { // Display the message to the console and add it to the logfile. myInstallContext->LogMessage( "The 'Install' method has been called" ); } } // The 'Install procedure should be added here. } virtual void Uninstall( IDictionary^ mySavedState ) override { // The 'Uninstall' procedure should be added here. } virtual void Rollback( IDictionary^ mySavedState ) override { if ( myInstallContext->IsParameterTrue( "LogtoConsole" ) ) { myInstallContext->LogMessage( "The 'Rollback' method has been called" ); } // The 'Rollback' procedure should be added here. } virtual void Commit( IDictionary^ mySavedState ) override { if ( myInstallContext->IsParameterTrue( "LogtoConsole" ) ) { myInstallContext->LogMessage( "The 'Commit' method has been called" ); } // The 'Commit' procedure should be added here. } }; int main() { array<String^>^args = Environment::GetCommandLineArgs(); InstallContext_Example^ myInstallObject = gcnew InstallContext_Example; IDictionary^ mySavedState = gcnew Hashtable; if ( args->Length < 2 ) { // There are no command line arguments, create an empty 'InstallContext'. myInstallObject->myInstallContext = gcnew InstallContext; } else if ( (args->Length == 2) && (args[ 1 ]->Equals( "/?" )) ) { // Display the 'Help' for this utility. Console::WriteLine( "Specify the '/Logfile' and '/LogtoConsole' parameters" ); Console::WriteLine( "Example: " ); Console::WriteLine( "InstallContext_InstallContext.exe /LogFile=example.log /LogtoConsole=true" ); return 0; } else { // Create an InstallContext object with the given parameters. array<String^>^commandLine = gcnew array<String^>(args->Length - 1); for ( int i = 0; i < args->Length - 1; i++ ) { commandLine[ i ] = args[ i + 1 ]; } myInstallObject->myInstallContext = gcnew InstallContext( args[ 1 ],commandLine ); } try { // Call the 'Install' method. myInstallObject->Install( mySavedState ); // Call the 'Commit' method. myInstallObject->Commit( mySavedState ); } catch ( Exception^ ) { // Call the 'Rollback' method. myInstallObject->Rollback( mySavedState ); } }
import System.*; import System.ComponentModel.*; import System.Configuration.Install.*; import System.Collections.*; import System.Collections.Specialized.*; /** @attribute RunInstallerAttribute(true) */ class InstallContextExample extends Installer { public InstallContext myInstallContext; public void Install(IDictionary mySavedState) { StringDictionary myStringDictionary = myInstallContext.get_Parameters(); if (myStringDictionary.get_Count() == 0) { Console.WriteLine("No parameters have been entered in the command " +"line hence, the install will take place in the silent mode"); } else { // Check whether the "LogtoConsole" parameter has been set. if (myInstallContext.IsParameterTrue("LogtoConsole") == true) { // Display the message to the console and add it //to the logfile. myInstallContext.LogMessage( "The 'Install' method has been called"); } } // The 'Install procedure should be added here. } //Install public void Uninstall(IDictionary mySavedState) { // The 'Uninstall' procedure should be added here. } //Uninstall public void Rollback(IDictionary mySavedState) { if (myInstallContext.IsParameterTrue("LogtoConsole") == true) { myInstallContext.LogMessage( "The 'Rollback' method has been called"); // The 'Rollback' procedure should be added here. } } //Rollback public void Commit(IDictionary mySavedState) { if (myInstallContext.IsParameterTrue("LogtoConsole") == true) { myInstallContext.LogMessage("The 'Commit' method has been called"); // The 'Commit' procedure should be added here. } } //Commit public static void main(String[] args) { InstallContextExample myInstallObject = new InstallContextExample(); IDictionary mySavedState = new Hashtable(); if (args.length < 1) { // There are no command line arguments, create an empty //'InstallContext'. myInstallObject.myInstallContext = new InstallContext(); } else { if (args.length == 1 && args[0] == "/?") { // Display the 'Help' for this utility. Console.WriteLine( "Specify the '/Logfile' and '/LogtoConsole' parameters"); Console.WriteLine("Example: "); Console.WriteLine("InstallContext_InstallContext.exe" +" /LogFile=example.log" + " /LogtoConsole=true"); return; } else { // Create an InstallContext object with the given parameters. String commandLine[] = new String[args.length]; for (int i = 0; i < args.length; i++) { commandLine.set_Item(i, args[i]); } myInstallObject.myInstallContext = new InstallContext(args[0], commandLine); } } try { // Call the 'Install' method. myInstallObject.Install(mySavedState); // Call the 'Commit' method. myInstallObject.Commit(mySavedState); } catch (System.Exception exp) { // Call the 'Rollback' method. myInstallObject.Rollback(mySavedState); } } //main } //InstallContextExample

System.Configuration.Install.InstallContext


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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


InstallContext コンストラクタ ()
アセンブリ: System.Configuration.Install (system.configuration.install.dll 内)



![]() |
---|
InstallContext コンストラクタのオーバーロードされたバージョンのいずれかの使用方法を次の例に示します。その他の例については、個々のオーバーロードのトピックを参照してください。 |
引数なしでプログラムを起動すると、空の InstallContext が作成されます。
' There are no command line arguments, create an empty 'InstallContext'. myInstallObject.myInstallContext = New InstallContext()
// There are no command line arguments, create an empty 'InstallContext'. myInstallObject.myInstallContext = new InstallContext();
// There are no command line arguments, create an empty 'InstallContext'.
myInstallObject->myInstallContext = gcnew InstallContext;


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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


InstallContext コンストラクタ (String, String[])
アセンブリ: System.Configuration.Install (system.configuration.install.dll 内)

Dim logFilePath As String Dim commandLine As String() Dim instance As New InstallContext(logFilePath, commandLine)
public InstallContext ( string logFilePath, string[] commandLine )
public InstallContext ( String logFilePath, String[] commandLine )
- commandLine
セットアップ プログラムの実行時に入力されたコマンド ライン パラメータ。入力されなかった場合は null 参照 (Visual Basic では Nothing)。

インストールに インストーラ ツール (Installutil.exe) を使用する場合、このコンストラクタは指定したパスにログ ファイルを作成し、コマンド ライン パラメータの配列を解析した結果を Parameters プロパティに格納します。コマンド ライン パラメータでログ ファイルのパスが指定されている場合は、このパスを使用してファイルが作成されます。コマンド ラインでログ ファイルの引数が指定されていない場合は、logFilePath パラメータの値が使用されます。ログ ファイルを作成しない場合は、"/logfile=" コマンド ライン パラメータを渡します。
呼び出し時の注意 このコンストラクタを呼び出すときは、logFilePath パラメータに既定のログ ファイル パスを渡します。インストール実行可能ファイルの実行時に /logfile コマンド ライン パラメータが使用される場合を除いて、指定した場所にログ ファイルが作成されます。
この例は、InstallContext クラスの概要で紹介されているクラスの例からの抜粋です。
"/LogFile" および "/LogtoConsole" を指定した場合、それぞれの引数を InstallContext に渡して、InstallContext が作成されます。
' Create an InstallContext object with the given parameters. Dim commandLine() As String = New String(args.Length - 2) {} Dim i As Integer For i = 1 To args.Length - 1 commandLine(i-1) = args(i) Next i myInstallObject.myInstallContext = _ New InstallContext("/LogFile:example.log", commandLine)
// Create an InstallContext object with the given parameters. String[] commandLine = new string[ args.Length ]; for( int i = 0; i < args.Length; i++ ) { commandLine[ i ] = args[ i ]; } myInstallObject.myInstallContext = new InstallContext( args[ 0 ], commandLine);
// Create an InstallContext object with the given parameters. array<String^>^commandLine = gcnew array<String^>(args->Length - 1); for ( int i = 0; i < args->Length - 1; i++ ) { commandLine[ i ] = args[ i + 1 ]; } myInstallObject->myInstallContext = gcnew InstallContext( args[ 1 ],commandLine );


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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


InstallContext コンストラクタ

名前 | 説明 |
---|---|
InstallContext () | InstallContext クラスの新しいインスタンスを初期化します。 |
InstallContext (String, String[]) | InstallContext クラスの新しいインスタンスを初期化し、インストール用のログ ファイルを作成します。 |

InstallContext プロパティ
InstallContext メソッド

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

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |
![]() | ParseCommandLine | コマンド ライン パラメータを解析して、その結果を文字列ディクショナリに格納します。 |

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



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

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |
![]() | ParseCommandLine | コマンド ライン パラメータを解析して、その結果を文字列ディクショナリに格納します。 |

- InstallContextのページへのリンク