Compartir a través de


Installer Clase

Definición

Proporciona la base para las instalaciones personalizadas.

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

Ejemplos

En el ejemplo siguiente se muestra el uso de la Installer clase . Crea una clase que hereda de Installer. Cuando Commit está a punto de completarse, Committing se produce un evento y se muestra un mensaje. Para usar la Installer clase , debe hacer referencia al ensamblado System.Configuration.Install del proyecto.

#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

Comentarios

Esta es la clase base para todos los instaladores personalizados de .NET Framework. Los instaladores son componentes que ayudan a instalar aplicaciones en un equipo.

Hay varios pasos que debe seguir para usar un Installer:

  • Hereda la Installer clase .

  • Invalide los Installmétodos , Commit, Rollbacky Uninstall .

  • Agregue a la RunInstallerAttribute clase derivada y establézcalo en true.

  • Coloque la clase derivada en el ensamblado con la aplicación que se va a instalar.

  • Invoque los instaladores. Por ejemplo, use el InstallUtil.exe para invocar los instaladores.

La Installers propiedad contiene una colección de instaladores. Si esta instancia de Installer forma parte de una colección de instaladores, la Parent propiedad se establece en la Installer instancia que contiene la colección. Para obtener un ejemplo del uso de la Installers colección, vea la AssemblyInstaller clase .

Los Installmétodos , Commit, Rollbacky Uninstall de la Installer clase pasan por la colección de instaladores almacenados en la Installers propiedad e invoca el método correspondiente de cada instalador.

Los Installmétodos , Commit, Rollbacky Uninstall no siempre se llaman a en la misma Installer instancia. Por ejemplo, se puede usar una Installer instancia al instalar y confirmar una aplicación y, a continuación, se libera la referencia a esa instancia. Más adelante, al desinstalar la aplicación se crea una referencia a una nueva Installer instancia, lo que significa que una instancia diferente de Installerllama al Uninstall método . Por este motivo, en la clase derivada, no guarde el estado de un equipo en un instalador. En su lugar, use un IDictionary objeto que se conserva entre las llamadas y se pasa a los Installmétodos , Commit, Rollbacky Uninstall .

Dos situaciones muestran la necesidad de guardar información en el protector IDictionaryde estado . En primer lugar, supongamos que el instalador establece una clave del Registro. Debe guardar el valor original de la clave en .IDictionary Si la instalación se revierte, se puede restaurar el valor original. En segundo lugar, supongamos que el instalador reemplaza un archivo existente. Guarde el archivo existente en un directorio temporal y la ubicación de la nueva ubicación del archivo en .IDictionary Si la instalación se revierte, el archivo más reciente se elimina y se reemplaza por el original de la ubicación temporal.

La Installer.Context propiedad contiene información sobre la instalación. Por ejemplo, información sobre la ubicación del archivo de registro para la instalación, la ubicación del archivo para guardar la información requerida por el Uninstall método y la línea de comandos que se especificó cuando se ejecutó el ejecutable de instalación.

Constructores

Installer()

Inicializa una nueva instancia de la clase Installer.

Propiedades

CanRaiseEvents

Obtiene un valor que indica si el componente puede generar un evento.

(Heredado de Component)
Container

Obtiene la interfaz IContainer que contiene la clase Component.

(Heredado de Component)
Context

Obtiene o establece información sobre la instalación actual.

DesignMode

Obtiene un valor que indica si Component está actualmente en modo de diseño.

(Heredado de Component)
Events

Obtiene la lista de controladores de eventos asociados a Component.

(Heredado de Component)
HelpText

Obtiene el texto de ayuda de todos los instaladores que se encuentran en la colección de instaladores.

Installers

Obtiene la colección de instaladores que contiene este instalador.

Parent

Obtiene o establece el instalador que contiene la colección a la que pertenece este instalador.

Site

Obtiene o establece ISite de Component.

(Heredado de Component)

Métodos

Commit(IDictionary)

Cuando se reemplaza en una clase derivada, finaliza la transacción de instalación.

CreateObjRef(Type)

Crea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado para comunicarse con un objeto remoto.

(Heredado de MarshalByRefObject)
Dispose()

Libera todos los recursos que usa Component.

(Heredado de Component)
Dispose(Boolean)

Libera los recursos no administrados que usa Component y, de forma opcional, libera los recursos administrados.

(Heredado de Component)
Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetLifetimeService()
Obsoletos.

Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.

(Heredado de MarshalByRefObject)
GetService(Type)

Devuelve un objeto que representa el servicio suministrado por Component o por Container.

(Heredado de Component)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
InitializeLifetimeService()
Obsoletos.

Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.

(Heredado de MarshalByRefObject)
Install(IDictionary)

Cuando se reemplaza en una clase derivada, se lleva a cabo la instalación.

MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
MemberwiseClone(Boolean)

Crea una copia superficial del objeto MarshalByRefObject actual.

(Heredado de MarshalByRefObject)
OnAfterInstall(IDictionary)

Genera el evento AfterInstall.

OnAfterRollback(IDictionary)

Genera el evento AfterRollback.

OnAfterUninstall(IDictionary)

Genera el evento AfterUninstall.

OnBeforeInstall(IDictionary)

Genera el evento BeforeInstall.

OnBeforeRollback(IDictionary)

Genera el evento BeforeRollback.

OnBeforeUninstall(IDictionary)

Genera el evento BeforeUninstall.

OnCommitted(IDictionary)

Genera el evento Committed.

OnCommitting(IDictionary)

Genera el evento Committing.

Rollback(IDictionary)

Cuando se reemplaza en una clase derivada, restaura el estado en el que estaba el equipo antes de la instalación.

ToString()

Devuelve una String que contiene el nombre del Component, si existe. Este método no se debe invalidar.

(Heredado de Component)
Uninstall(IDictionary)

Cuando se reemplaza en una clase derivada, quita una instalación.

Eventos

AfterInstall

Se produce después de ejecutarse los métodos Install(IDictionary) de todos los instaladores de la propiedad Installers.

AfterRollback

Se produce después de deshacerse la instalación de todos los instaladores de la propiedad Installers.

AfterUninstall

Se produce después de que todos los instaladores de la propiedad Installers realicen sus operaciones de desinstalación.

BeforeInstall

Se produce antes de ejecutarse el método Install(IDictionary) de cada instalador en la colección de instaladores.

BeforeRollback

Se produce antes de deshacerse los instaladores de la propiedad Installers.

BeforeUninstall

Se produce antes de que los instaladores de la propiedad Installers realicen sus operaciones de desinstalación.

Committed

Se produce después de que todos los instaladores de la propiedad Installers confirmen sus instalaciones.

Committing

Se produce antes de que los instaladores de la propiedad Installers confirmen sus instalaciones.

Disposed

Tiene lugar cuando una llamada elimina el componente mediante una llamada al método Dispose().

(Heredado de Component)

Se aplica a

Consulte también