Installer Classe

Definição

Fornece a base para instalações personalizadas.

public ref class Installer : System::ComponentModel::Component
public class Installer : System.ComponentModel.Component
type Installer = class
    inherit Component
Public Class Installer
Inherits Component
Herança
Derivado

Exemplos

O exemplo a seguir demonstra o uso da Installer classe . Ele cria uma classe que herda de Installer. Quando Commit está prestes a ser concluído, Committing o evento ocorre e uma mensagem é exibida. Para usar a Installer classe , você deve referenciar o assembly System.Configuration.Install em seu projeto.

#using <System.dll>
#using <System.Configuration.Install.dll>

using namespace System;
using namespace System::Collections;
using namespace System::ComponentModel;
using namespace System::Configuration::Install;

// Set 'RunInstaller' attribute to true.

[RunInstaller(true)]
ref class MyInstallerClass: public Installer
{
private:

   // Event handler for 'Committing' event.
   void MyInstaller_Committing( Object^ sender, InstallEventArgs^ e )
   {
      Console::WriteLine( "" );
      Console::WriteLine( "Committing Event occurred." );
      Console::WriteLine( "" );
   }


   // Event handler for 'Committed' event.
   void MyInstaller_Committed( Object^ sender, InstallEventArgs^ e )
   {
      Console::WriteLine( "" );
      Console::WriteLine( "Committed Event occurred." );
      Console::WriteLine( "" );
   }


public:
   MyInstallerClass()
   {
      
      // Attach the 'Committed' event.
      this->Committed += gcnew InstallEventHandler( this, &MyInstallerClass::MyInstaller_Committed );
      
      // Attach the 'Committing' event.
      this->Committing += gcnew InstallEventHandler( this, &MyInstallerClass::MyInstaller_Committing );
   }


   // Override the 'Install' method.
   virtual void Install( IDictionary^ savedState ) override
   {
      Installer::Install( savedState );
   }


   // Override the 'Commit' method.
   virtual void Commit( IDictionary^ savedState ) override
   {
      Installer::Commit( savedState );
   }


   // Override the 'Rollback' method.
   virtual void Rollback( IDictionary^ savedState ) override
   {
      Installer::Rollback( savedState );
   }

};

int main()
{
   Console::WriteLine( "Usage : installutil.exe Installer.exe " );
}
using System;
using System.Collections;
using System.ComponentModel;
using System.Configuration.Install;

// Set 'RunInstaller' attribute to true.
[RunInstaller(true)]
public class MyInstallerClass: Installer
{
   public MyInstallerClass() :base()
   {
      // Attach the 'Committed' event.
      this.Committed += new InstallEventHandler(MyInstaller_Committed);
      // Attach the 'Committing' event.
      this.Committing += new InstallEventHandler(MyInstaller_Committing);
   }
   // Event handler for 'Committing' event.
   private void MyInstaller_Committing(object sender, InstallEventArgs e)
   {
      Console.WriteLine("");
      Console.WriteLine("Committing Event occurred.");
      Console.WriteLine("");
   }
   // Event handler for 'Committed' event.
   private void MyInstaller_Committed(object sender, InstallEventArgs e)
   {
      Console.WriteLine("");
      Console.WriteLine("Committed Event occurred.");
      Console.WriteLine("");
   }
   // Override the 'Install' method.
   public override void Install(IDictionary savedState)
   {
      base.Install(savedState);
   }
   // Override the 'Commit' method.
   public override void Commit(IDictionary savedState)
   {
      base.Commit(savedState);
   }
   // Override the 'Rollback' method.
   public override void Rollback(IDictionary savedState)
   {
      base.Rollback(savedState);
   }
   public static void Main()
   {
      Console.WriteLine("Usage : installutil.exe Installer.exe ");
   }
}
Imports System.Collections
Imports System.ComponentModel
Imports System.Configuration.Install

' Set 'RunInstaller' attribute to true.
<RunInstaller(True)> _
Public Class MyInstallerClass
   Inherits Installer

   Public Sub New()
       MyBase.New()
      ' Attach the 'Committed' event.
      AddHandler Me.Committed, AddressOf MyInstaller_Committed
      ' Attach the 'Committing' event.
      AddHandler Me.Committing, AddressOf MyInstaller_Committing
   End Sub

   ' Event handler for 'Committing' event.
   Private Sub MyInstaller_Committing(ByVal sender As Object, _
                                      ByVal e As InstallEventArgs)
      Console.WriteLine("")
      Console.WriteLine("Committing Event occurred.")
      Console.WriteLine("")
   End Sub

   ' Event handler for 'Committed' event.
   Private Sub MyInstaller_Committed(ByVal sender As Object, _
                                     ByVal e As InstallEventArgs)
      Console.WriteLine("")
      Console.WriteLine("Committed Event occurred.")
      Console.WriteLine("")
   End Sub

   ' Override the 'Install' method.
   Public Overrides Sub Install(ByVal savedState As IDictionary)
      MyBase.Install(savedState)
   End Sub

   ' Override the 'Commit' method.
   Public Overrides Sub Commit(ByVal savedState As IDictionary)
      MyBase.Commit(savedState)
   End Sub

   ' Override the 'Rollback' method.
   Public Overrides Sub Rollback(ByVal savedState As IDictionary)
      MyBase.Rollback(savedState)
   End Sub
   Public Shared Sub Main()
      Console.WriteLine("Usage : installutil.exe Installer.exe ")
   End Sub
End Class

Comentários

Essa é a classe base para todos os instaladores personalizados no .NET Framework. Os instaladores são componentes que ajudam a instalar aplicativos em um computador.

Há várias etapas que você deve seguir para usar um Installer:

  • Herda a Installer classe .

  • Substitua os Installmétodos , Commit, Rollbacke Uninstall .

  • Adicione o RunInstallerAttribute à classe derivada e defina-o truecomo .

  • Coloque sua classe derivada no assembly com seu aplicativo para instalar.

  • Invoque os instaladores. Por exemplo, use o InstallUtil.exe para invocar os instaladores.

A Installers propriedade contém uma coleção de instaladores. Se essa instância do Installer fizer parte de uma coleção de instalador, a Parent propriedade será definida como a Installer instância que contém a coleção. Para obter um exemplo do uso da Installers coleção, consulte a AssemblyInstaller classe .

Os Installmétodos , CommitRollback, e Uninstall da Installer classe passam pela coleção de instaladores armazenados na Installers propriedade e invocam o método correspondente de cada instalador.

Os Installmétodos , CommitRollback, e Uninstall nem sempre são chamados na mesma Installer instância. Por exemplo, uma Installer instância pode ser usada durante a instalação e confirmação de um aplicativo e, em seguida, a referência a essa instância é liberada. Posteriormente, a desinstalação do aplicativo cria uma referência a uma nova Installer instância, o que significa que o Uninstall método é chamado por uma instância diferente do Installer. Por esse motivo, em sua classe derivada, não salve o estado de um computador em um instalador. Em vez disso, use um IDictionary que é preservado entre chamadas e passado para seus Installmétodos , Commit, Rollbacke Uninstall .

Duas situações ilustram a necessidade de salvar informações no state-saver IDictionary. Primeiro, suponha que o instalador defina uma chave do Registro. Ele deve salvar o valor original da chave no IDictionary. Se a instalação for revertida, o valor original poderá ser restaurado. Em segundo lugar, suponha que o instalador substitua um arquivo existente. Salve o arquivo existente em um diretório temporário e o local do novo local do arquivo no IDictionary. Se a instalação for revertida, o arquivo mais recente será excluído e substituído pelo original do local temporário.

A Installer.Context propriedade contém informações sobre a instalação. Por exemplo, informações sobre o local do arquivo de log para a instalação, o local do arquivo para salvar as informações exigidas pelo Uninstall método e a linha de comando que foi inserida quando o executável de instalação foi executado.

Construtores

Installer()

Inicializa uma nova instância da classe Installer.

Propriedades

CanRaiseEvents

Obtém um valor que indica se o componente pode acionar um evento.

(Herdado de Component)
Container

Obtém o IContainer que contém o Component.

(Herdado de Component)
Context

Obtém ou define informações sobre a instalação atual.

DesignMode

Obtém um valor que indica se o Component está no modo de design no momento.

(Herdado de Component)
Events

Obtém a lista de manipuladores de eventos que estão anexados a este Component.

(Herdado de Component)
HelpText

Obtém o texto de ajuda para todos os instaladores na coleção de instalador.

Installers

Obtém a coleção de instaladores que contém esse instalador.

Parent

Obtém ou define o instalador que contém a coleção à qual o instalador pertence.

Site

Obtém ou define o ISite do Component.

(Herdado de Component)

Métodos

Commit(IDictionary)

Quando substituído em uma classe derivada, conclui a transação de instalação.

CreateObjRef(Type)

Cria um objeto que contém todas as informações relevantes necessárias para gerar um proxy usado para se comunicar com um objeto remoto.

(Herdado de MarshalByRefObject)
Dispose()

Libera todos os recursos usados pelo Component.

(Herdado de Component)
Dispose(Boolean)

Libera os recursos não gerenciados usados pelo Component e opcionalmente libera os recursos gerenciados.

(Herdado de Component)
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)
GetLifetimeService()
Obsoleto.

Recupera o objeto de serviço de tempo de vida atual que controla a política de ciclo de vida para esta instância.

(Herdado de MarshalByRefObject)
GetService(Type)

Retorna um objeto que representa um serviço fornecido pelo Component ou pelo seu Container.

(Herdado de Component)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
InitializeLifetimeService()
Obsoleto.

Obtém um objeto de serviço de tempo de vida para controlar a política de tempo de vida para essa instância.

(Herdado de MarshalByRefObject)
Install(IDictionary)

Quando substituído em uma classe derivada, executa a instalação.

MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
MemberwiseClone(Boolean)

Cria uma cópia superficial do objeto MarshalByRefObject atual.

(Herdado de MarshalByRefObject)
OnAfterInstall(IDictionary)

Aciona o evento AfterInstall.

OnAfterRollback(IDictionary)

Aciona o evento AfterRollback.

OnAfterUninstall(IDictionary)

Aciona o evento AfterUninstall.

OnBeforeInstall(IDictionary)

Aciona o evento BeforeInstall.

OnBeforeRollback(IDictionary)

Aciona o evento BeforeRollback.

OnBeforeUninstall(IDictionary)

Aciona o evento BeforeUninstall.

OnCommitted(IDictionary)

Aciona o evento Committed.

OnCommitting(IDictionary)

Aciona o evento Committing.

Rollback(IDictionary)

Quando substituído em uma classe derivada, restaura o estado de pré-instalação do computador.

ToString()

Retorna um String que contém o nome do Component, se houver. Esse método não deve ser substituído.

(Herdado de Component)
Uninstall(IDictionary)

Quando substituído em uma classe derivada, remove uma instalação.

Eventos

AfterInstall

Ocorre depois que os métodos do Install(IDictionary) de todos os instaladores na propriedade Installers foram executados.

AfterRollback

Ocorre após as instalações de todos os instaladores na propriedade Installers serem revertidas.

AfterUninstall

Ocorre depois que todos os instaladores na propriedade Installers realizam suas operações de desinstalação.

BeforeInstall

Ocorre antes do método Install(IDictionary) de cada instalador no instalador em que a coleção foi executada.

BeforeRollback

Ocorre antes que os instaladores na propriedade Installers sejam revertidos.

BeforeUninstall

Ocorre antes dos instaladores na propriedade Installers executarem suas operações de desinstalação.

Committed

Ocorre depois que todos os instaladores na propriedade Installers confirmaram suas instalações.

Committing

Ocorre antes que os instaladores na propriedade Installers façam commit de suas instalações.

Disposed

Ocorre quando o componente é disposto por uma chamada ao método Dispose().

(Herdado de Component)

Aplica-se a

Confira também