InstallContext Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Obsahuje informace o aktuální instalaci.
public ref class InstallContext
public class InstallContext
type InstallContext = class
Public Class InstallContext
- Dědičnost
-
InstallContext
Příklady
Následující příklad ukazuje InstallContext konstruktory, Parameters vlastnost a LogMessage metody a IsParameterTrue metody InstallContext třídy.
Při zavolání Install metody instalačního programu zkontroluje parametry z příkazového řádku. V závislosti na tom zobrazí zprávy o průběhu do konzoly a také je uloží do zadaného souboru protokolu.
Při vyvolání programu bez argumentů se vytvoří prázdný InstallContext . Při zadání InstallContext "/LogFile" a "/LogtoConsole" se vytvoří předáním příslušných argumentů do 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
Poznámky
Obvykle InstallContext je vytvořen spustitelným souborem instalace, například InstallUtil.exe, který instaluje sestavení. Instalační program vyvolá InstallContext konstruktor a předá mu výchozí cestu k souboru protokolu a parametry příkazového řádku.
Před voláním metody Install, Commit, Rollbacknebo Uninstall nastaví Context instalační program vlastnost objektu Installer na instanci .InstallContext Před voláním těchto metod, který Installer obsahuje instalační kolekce ve Installers vlastnosti nastaví Context vlastnost každého obsaženého instalačního programu.
Vlastnost Parameters obsahuje parsovanou verzi příkazového řádku, která je zadána ke spuštění spustitelného souboru instalace. Vlastnost obsahuje informace, jako je cesta k souboru protokolu, zda se mají v konzole zobrazit informace protokolu a jestli se má během instalace zobrazit uživatelské rozhraní. Voláním IsParameterTrue metody zjistíte, jestli je true
parametr příkazového řádku .
LogMessage Pomocí metody zapište stavové zprávy do souboru protokolu instalace a konzoly.
Konstruktory
InstallContext() |
Inicializuje novou instanci InstallContext třídy. |
InstallContext(String, String[]) |
Inicializuje novou instanci InstallContext třídy a vytvoří soubor protokolu pro instalaci. |
Vlastnosti
Parameters |
Získá parametry příkazového řádku, které byly zadány při spuštění InstallUtil.exe. |
Metody
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
GetHashCode() |
Slouží jako výchozí hashovací funkce. (Zděděno od Object) |
GetType() |
Získá aktuální Type instanci. (Zděděno od Object) |
IsParameterTrue(String) |
Určuje, zda je |
LogMessage(String) |
Zapíše zprávu do konzoly a do souboru protokolu pro instalaci. |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
ParseCommandLine(String[]) |
Parsuje parametry příkazového řádku do slovníku řetězců. |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |