InstallContext クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
現在のインストールに関する情報を格納します。
public ref class InstallContext
public class InstallContext
type InstallContext = class
Public Class InstallContext
- 継承
-
InstallContext
例
次の例では、 クラスの InstallContext コンストラクター、プロパティ、 Parameters および LogMessageIsParameterTrue メソッドを InstallContext 示します。
インストーラーの Install メソッドが呼び出されると、コマンド ラインからパラメーターがチェックされます。 それに応じて、進行状況メッセージがコンソールに表示され、指定したログ ファイルにも保存されます。
引数を指定せずにプログラムを呼び出すと、空 InstallContext の が作成されます。 "/LogFile" と "/LogtoConsole" を指定すると、 InstallContext はそれぞれの引数を に InstallContext渡すことによって作成されます。
#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 );
}
}
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 )
{
base.Install( 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 )
{
base.Uninstall( mySavedState );
// The 'Uninstall' procedure should be added here.
}
public override void Rollback( IDictionary mySavedState )
{
base.Rollback( 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 )
{
base.Commit( 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 );
}
}
}
}
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
Public Overrides Sub Uninstall(mySavedState As IDictionary)
' The 'Uninstall' procedure should be added here.
End Sub
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
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
' 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
End Class
End Namespace 'MyInstallContextNamespace
注釈
通常、 InstallContext は、アセンブリをインストールするインストール実行可能ファイル (InstallUtil.exe など) によって作成されます。 インストール プログラムはコンストラクターを InstallContext 呼び出し、既定のログ ファイル パスとコマンド ライン パラメーターを渡します。
、または Uninstall メソッドをInstallCommitRollback呼び出す前に、インストール プログラムは の Installer プロパティを Context のInstallContextインスタンスに設定します。 これらのメソッドを呼び出す前に、 Installer プロパティに Installers インストーラー コレクションを含む が含まれる各インストーラーの プロパティを Context 設定します。
プロパティには Parameters 、インストール実行可能ファイルを実行するために入力されたコマンド ラインの解析済みバージョンが含まれています。 プロパティには、ログ ファイルへのパス、コンソールにログ情報を表示するかどうか、インストール時にユーザー インターフェイスを表示するかどうかなどの情報が含まれます。 コマンド ライン パラメーターが IsParameterTrue かどうかを調べるには、 メソッドを呼び出します true
。
LogMessageインストール ログ ファイルとコンソールにステータス メッセージを書き込むには、 メソッドを使用します。
コンストラクター
InstallContext() |
InstallContext クラスの新しいインスタンスを初期化します。 |
InstallContext(String, String[]) |
InstallContext クラスの新しいインスタンスを初期化し、インストール用のログ ファイルを作成します。 |
プロパティ
Parameters |
InstallUtil.exe の実行時に入力されたコマンド ライン パラメーターを取得します。 |
メソッド
Equals(Object) |
指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
IsParameterTrue(String) |
指定したコマンド ライン パラメーターが |
LogMessage(String) |
メッセージをコンソールとインストール ログ ファイルに書き込みます。 |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
ParseCommandLine(String[]) |
コマンド ライン パラメーターを解析して、その結果を文字列ディクショナリに格納します。 |
ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
適用対象
こちらもご覧ください
.NET