Exporter (0) Imprimer
Développer tout

Installer, classe

Mise à jour : novembre 2007

Fournit la base des installations personnalisées.

Espace de noms :  System.Configuration.Install
Assembly :  System.Configuration.Install (dans System.Configuration.Install.dll)

public class Installer : Component
public class Installer extends Component
public class Installer extends Component

Il s'agit de la classe de base pour tous les programmes d'installation personnalisés du .NET Framework. Les programmes d'installation sont des composants qui aident à installer des applications sur un ordinateur.

Vous devez suivre plusieurs étapes pour utiliser un Installer :

  • Héritez de la classe Installer.

  • Substituez les méthodes Install, Commit, Rollback et Uninstall.

  • Ajoutez RunInstallerAttribute à votre classe dérivée et affectez-lui la valeur true.

  • Placez votre classe dérivée dans l'assembly avec l'application que vous souhaitez installer.

  • Appelez les programmes d'installation. Par exemple, utilisez le fichier InstallUtil.exe pour appeler les programmes d'installation.

La propriété Installers contient une collection de programmes d'installation. Si cette instance de Installer appartient à une collection de programmes d'installation, la propriété Parent a pour valeur l'instance de Installer qui contient la collection. Pour obtenir un exemple de l'utilisation de la collection Installers, consultez la classe AssemblyInstaller.

Les méthodes Install, Commit, Rollback et Uninstall de la classe Installer parcourent la collection de programmes d'installation stockée dans la propriété Installers et appellent la méthode correspondante de chaque programme d'installation.

Les méthodes Install, Commit, Rollback et Uninstall ne sont pas toujours appelées sur la même instance de Installer. Par exemple, vous pouvez utiliser une instance de Installer lors de l'installation et de la validation d'une application, puis la référence est libérée. La désinstallation ultérieure de l'application entraîne la création d'une référence à une nouvelle instance de Installer, ce qui signifie que la méthode Uninstall est appelée par une autre instance de Installer. Pour cette raison, dans votre classe dérivée, n'enregistrez pas l'état d'un ordinateur dans un programme d'installation. Utilisez plutôt un IDictionary conservé d'un appel à l'autre et passé à vos méthodes Install, Commit, Rollback et Uninstall.

Deux situations illustrent la nécessité d'enregistrer les informations dans le IDictionary d'enregistrement d'états. Premièrement, supposons que votre programme d'installation définisse une clé de Registre. Il doit enregistrer la valeur d'origine de la clé dans IDictionary. Si l'installation est restaurée, la valeur d'origine peut être rétablie. Deuxièmement, supposons que le programme d'installation remplace un fichier existant. Enregistrez le fichier existant dans un répertoire temporaire et le nouvel emplacement du fichier dans IDictionary. Si l'installation est restaurée, le fichier plus récent est supprimé et remplacé par le fichier d'origine provenant de l'emplacement temporaire.

La propriété Installer.Context contient des informations sur l'installation. Par exemple, des informations concernant l'emplacement du fichier journal de l'installation, l'emplacement du fichier qui enregistre les informations requises pour la méthode Uninstall et la ligne de commande qui a été entrée au moment de l'exécution de l'exécutable d'installation.

L'exemple suivant illustre l'utilisation de la classe Installer. Il crée une classe qui hérite de Installer. Lorsque Commit est sur le point de se terminer, l'événement Committing se produit et un message s'affiche.

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 occured.");
      Console.WriteLine("");
   }
   // Event handler for 'Committed' event.
   private void MyInstaller_Committed(object sender, InstallEventArgs e)
   {
      Console.WriteLine("");
      Console.WriteLine("Committed Event occured.");
      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 ");
   }
}


import System.*;
import System.Collections.*;
import System.ComponentModel.*;
import System.Configuration.Install.*;

// Set 'RunInstaller' attribute to true.
/** @attribute RunInstaller(true)
 */
public class MyInstallerClass extends Installer
{
    public MyInstallerClass()
    {
        // Attach the 'Committed' event.
        this.add_Committed(new InstallEventHandler(MyInstaller_Committed));

        // Attach the 'Committing' event.
        this.add_Committing(new InstallEventHandler(MyInstaller_Committing));
    } //MyInstallerClass

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

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

    // Override the 'Install' method.
    public void Install(IDictionary savedState)
    {
        super.Install(savedState);
    } //Install

    // Override the 'Commit' method.
    public void Commit(IDictionary savedState)
    {
        super.Commit(savedState);
    } //Commit

    // Override the 'Rollback' method.
    public void Rollback(IDictionary savedState)
    {
        super.Rollback(savedState);
    } //Rollback

    public static void main(String[] args)
    {
        Console.WriteLine("Usage : installutil.exe Installer.exe ");
    } //main
} //MyInstallerClass


Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professionnel Édition x64, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

.NET Framework

Pris en charge dans : 3.5, 3.0, 2.0, 1.1, 1.0

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft