InstallContext Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Contient des informations sur l'installation en cours.
public ref class InstallContext
public class InstallContext
type InstallContext = class
Public Class InstallContext
- Héritage
-
InstallContext
Exemples
L’exemple suivant illustre les InstallContext constructeurs, la Parameters propriété et les LogMessage méthodes et IsParameterTrue de la InstallContext classe .
Lorsque la Install méthode du programme d’installation est appelée, elle recherche les paramètres de la ligne de commande. En fonction de cela, il affiche les messages de progression sur la console et les enregistre également dans le fichier journal spécifié.
Lorsque le programme est appelé sans arguments, un vide InstallContext est créé. Lorsque « /LogFile » et « /LogtoConsole » sont spécifiés, le InstallContext est créé en passant les arguments respectifs à 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
Remarques
En règle générale, un InstallContext est créé par un exécutable d’installation, tel que InstallUtil.exe, qui installe des assemblys. Le programme d’installation appelle le InstallContext constructeur, en lui passant le chemin d’accès au fichier journal par défaut et les paramètres de ligne de commande.
Avant d’appeler ses Installméthodes , Commit, Rollbackou Uninstall , le programme d’installation définit la Context propriété d’un Installer sur la instance de InstallContext. Avant d’appeler ces méthodes, un Installer qui contient une collection de programmes d’installation dans la Installers propriété définit la Context propriété de chaque programme d’installation contenu.
La Parameters propriété contient une version analysée de la ligne de commande entrée pour exécuter l’exécutable d’installation. La propriété contient des informations telles que le chemin d’accès à un fichier journal, l’affichage des informations de journal sur la console et l’affichage d’une interface utilisateur lors de l’installation. Appelez la IsParameterTrue méthode pour déterminer si un paramètre de ligne de commande est true
.
Utilisez la LogMessage méthode pour écrire status messages dans le fichier journal d’installation et la console.
Constructeurs
InstallContext() |
Initialise une nouvelle instance de la classe InstallContext. |
InstallContext(String, String[]) |
Initialise une nouvelle instance de la classe InstallContext et crée un fichier journal pour l'installation. |
Propriétés
Parameters |
Obtient les paramètres de ligne de commande qui ont été entrés lors de l'exécution de InstallUtil.exe. |
Méthodes
Equals(Object) |
Détermine si l'objet spécifié est égal à l'objet actuel. (Hérité de Object) |
GetHashCode() |
Fait office de fonction de hachage par défaut. (Hérité de Object) |
GetType() |
Obtient le Type de l'instance actuelle. (Hérité de Object) |
IsParameterTrue(String) |
Détermine si le paramètre de ligne de commande spécifié a la valeur |
LogMessage(String) |
Affiche un message dans la console et l'enregistre dans le fichier journal de l'installation. |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (Hérité de Object) |
ParseCommandLine(String[]) |
Analyse les paramètres de ligne de commande dans un dictionnaire de chaînes. |
ToString() |
Retourne une chaîne qui représente l'objet actuel. (Hérité de Object) |