Ler em inglês

Partilhar via


InstallContext Classe

Definição

Contém informações sobre a instalação atual.

C#
public class InstallContext
Herança
InstallContext

Exemplos

O exemplo a seguir demonstra os InstallContext construtores, a Parameters propriedade e os LogMessage métodos e IsParameterTrue da InstallContext classe .

Quando o Install método do instalador é chamado, ele verifica se há parâmetros na linha de comando. Dependendo disso, ele exibe as mensagens de progresso no console e também as salva no arquivo de log especificado.

Quando o programa é invocado sem argumentos, um vazio InstallContext é criado. Quando "/LogFile" e "/LogtoConsole" são especificados, o InstallContext é criado passando os respectivos argumentos para InstallContext.

C#
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 );
         }
      }
   }
}

Comentários

Normalmente, um InstallContext é criado por um executável de instalação, como InstallUtil.exe, que instala assemblies. O programa de instalação invoca o InstallContext construtor, passando-lhe os parâmetros padrão log-file path e command-line.

Antes de chamar seus Installmétodos , Commit, Rollbackou Uninstall , o programa de instalação define a Context propriedade de um Installer para a instância do InstallContext. Antes de chamar esses métodos, um Installer que contém uma coleção de instalador na Installers propriedade define a Context propriedade de cada instalador contido.

A Parameters propriedade contém uma versão analisada da linha de comando inserida para executar o executável de instalação. A propriedade contém informações como o caminho para um arquivo de log, se as informações de log devem ser exibidas no console e se uma interface do usuário deve ser exibida durante a instalação. Chame o IsParameterTrue método para descobrir se um parâmetro de linha de comando é true.

Use o LogMessage método para gravar mensagens status no arquivo de log de instalação e no console.

Construtores

InstallContext()

Inicializa uma nova instância da classe InstallContext.

InstallContext(String, String[])

Inicializa uma nova instância da classe InstallContext e cria um arquivo de log para a instalação.

Propriedades

Parameters

Obtém os parâmetros de linha de comando que foram inseridos quando o InstallUtil.exe foi executado.

Métodos

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IsParameterTrue(String)

Determina se o parâmetro de linha de comando especificado é true.

LogMessage(String)

Grava uma mensagem para o console e para o arquivo de log para a instalação.

MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ParseCommandLine(String[])

Analisa os parâmetros de linha de comando em um dicionário de cadeia de caracteres.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a

Produto Versões
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

Confira também