ServiceProcessInstaller Classe

Définition

Installe un exécutable contenant des classes qui s’étendent ServiceBase. Cette classe est appelée par les utilitaires d’installation, tels que InstallUtil.exe, lors de l’installation d’une application de service.

public ref class ServiceProcessInstaller : System::Configuration::Install::ComponentInstaller
public class ServiceProcessInstaller : System.Configuration.Install.ComponentInstaller
type ServiceProcessInstaller = class
    inherit ComponentInstaller
Public Class ServiceProcessInstaller
Inherits ComponentInstaller
Héritage

Exemples

L’exemple suivant crée un programme d’installation de projet appelé MyProjectInstaller, qui hérite de Installer. Il est supposé qu’il existe un exécutable de service qui contient deux services , «Hello-World Service 1 » et «Hello-World Service 2 ». Dans le constructeur de MyProjectInstaller (qui serait appelé par l’utilitaire d’installation), ServiceInstaller les objets sont créés pour chaque service et un ServiceProcessInstaller objet est créé pour l’exécutable. Pour que l’utilitaire d’installation reconnaisse MyProjectInstaller comme programme d’installation valide, l’attribut RunInstallerAttribute est défini sur true.

Les propriétés facultatives sont définies sur le programme d’installation du processus et les programmes d’installation de service avant l’ajout des programmes d’installation à la Installers collection. Lorsque l’utilitaire d’installation accède à MyProjectInstaller, les objets ajoutés à la Installers collection via un appel à seront installés à InstallerCollection.Add leur tour. Pendant le processus, le programme d’installation conserve les informations d’état indiquant quels objets ont été installés, afin que chaque objet puisse être sauvegardé à son tour en cas d’échec d’installation.

Normalement, vous n’instanciez pas explicitement votre classe d’installation de projet. Vous le créez et ajoutez le RunInstallerAttribute, mais l’utilitaire d’installation appelle réellement, et instancie donc, la classe.

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

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

[RunInstaller(true)]
public ref class MyProjectInstaller : public Installer
{
private:
    ServiceInstaller^ serviceInstaller1;
    ServiceInstaller^ serviceInstaller2;
    ServiceProcessInstaller^ processInstaller;

public:
    MyProjectInstaller()
    {
        // Instantiate installers for process and services.
        processInstaller = gcnew ServiceProcessInstaller;
        serviceInstaller1 = gcnew ServiceInstaller;
        serviceInstaller2 = gcnew ServiceInstaller;

        // The services run under the system account.
        processInstaller->Account = ServiceAccount::LocalSystem;

        // The services are started manually.
        serviceInstaller1->StartType = ServiceStartMode::Manual;
        serviceInstaller2->StartType = ServiceStartMode::Manual;

        // ServiceName must equal those on ServiceBase derived classes.
        serviceInstaller1->ServiceName = "Hello-World Service 1";
        serviceInstaller2->ServiceName = "Hello-World Service 2";

        // Add installers to collection. Order is not important.
        Installers->Add( serviceInstaller1 );
        Installers->Add( serviceInstaller2 );
        Installers->Add( processInstaller );
    }

    static void Main()
    {
        Console::WriteLine("Usage: InstallUtil.exe [<service>.exe]");
    }
};

int main()
{
    MyProjectInstaller::Main();
}
using System;
using System.Collections;
using System.Configuration.Install;
using System.ServiceProcess;
using System.ComponentModel;

[RunInstaller(true)]
public class MyProjectInstaller : Installer
{
    private ServiceInstaller serviceInstaller1;
    private ServiceInstaller serviceInstaller2;
    private ServiceProcessInstaller processInstaller;

    public MyProjectInstaller()
    {
        // Instantiate installers for process and services.
        processInstaller = new ServiceProcessInstaller();
        serviceInstaller1 = new ServiceInstaller();
        serviceInstaller2 = new ServiceInstaller();

        // The services run under the system account.
        processInstaller.Account = ServiceAccount.LocalSystem;

        // The services are started manually.
        serviceInstaller1.StartType = ServiceStartMode.Manual;
        serviceInstaller2.StartType = ServiceStartMode.Manual;

        // ServiceName must equal those on ServiceBase derived classes.
        serviceInstaller1.ServiceName = "Hello-World Service 1";
        serviceInstaller2.ServiceName = "Hello-World Service 2";

        // Add installers to collection. Order is not important.
        Installers.Add(serviceInstaller1);
        Installers.Add(serviceInstaller2);
        Installers.Add(processInstaller);
    }

    public static void Main()
    {
        Console.WriteLine("Usage: InstallUtil.exe [<service>.exe]");
    }
}
Imports System.Collections
Imports System.Configuration.Install
Imports System.ServiceProcess
Imports System.ComponentModel

<RunInstallerAttribute(True)> _
Public Class MyProjectInstaller
    Inherits Installer
    Private serviceInstaller1 As ServiceInstaller
    Private serviceInstaller2 As ServiceInstaller
    Private processInstaller As ServiceProcessInstaller    
    
    Public Sub New()
        ' Instantiate installers for process and services.
        processInstaller = New ServiceProcessInstaller()
        serviceInstaller1 = New ServiceInstaller()
        serviceInstaller2 = New ServiceInstaller()
        
        ' The services will run under the system account.
        processInstaller.Account = ServiceAccount.LocalSystem
        
        ' The services will be started manually.
        serviceInstaller1.StartType = ServiceStartMode.Manual
        serviceInstaller2.StartType = ServiceStartMode.Manual
        
        ' ServiceName must equal those on ServiceBase derived classes.            
        serviceInstaller1.ServiceName = "Hello-World Service 1"
        serviceInstaller2.ServiceName = "Hello-World Service 2"
        
        ' Add installers to collection. Order is not important.
        Installers.Add(serviceInstaller1)
        Installers.Add(serviceInstaller2)
        Installers.Add(processInstaller)
    End Sub

    Public Shared Sub Main()
        Console.WriteLine("Usage: InstallUtil.exe [<service>.exe]")
    End Sub
End Class

Remarques

Le ServiceProcessInstaller travail est commun à tous les services d’un exécutable. Il est utilisé par l’utilitaire d’installation pour écrire des valeurs de Registre associées aux services que vous souhaitez installer.

Pour installer un service, créez une classe d’installation de projet qui hérite de Installer, puis définissez la RunInstallerAttribute classe truesur . Dans votre projet, instanciez une ServiceProcessInstaller instance par application de service et une ServiceInstaller instance pour chaque service de l’application. Enfin, ajoutez l’instance ServiceProcessInstaller et les ServiceInstaller instances à votre classe d’installation de projet.

Lorsque InstallUtil.exe s’exécute, l’utilitaire recherche des classes dans l’assembly de service avec la RunInstallerAttribute valeur définie truesur . Ajoutez des classes à l’assembly de service en les ajoutant à la Installers collection associée à votre programme d’installation de projet. Si RunInstallerAttribute c’est falsele cas, l’utilitaire d’installation ignore le programme d’installation du projet.

Pour une instance de ServiceProcessInstaller, les propriétés que vous pouvez modifier incluent la spécification qu’une application de service s’exécute sous un compte autre que l’utilisateur connecté. Vous pouvez spécifier une paire particulière UsernamePassword sous laquelle le service doit s’exécuter, ou vous pouvez l’utiliser Account pour spécifier que le service s’exécute sous le compte système de l’ordinateur, un compte de service local ou réseau ou un compte d’utilisateur.

Note

Le compte système de l’ordinateur n’est pas identique au compte Administrateur.

Normalement, vous n’appelez pas les méthodes dans ServiceInstaller votre code ; elles sont généralement appelées uniquement par l’utilitaire d’installation. L’utilitaire d’installation appelle automatiquement les méthodes et ServiceProcessInstaller.Install les ServiceInstaller.Install méthodes pendant le processus d’installation. Elle sauvegarde les défaillances, si nécessaire, en appelant Rollback (ou ServiceInstaller.Rollback) sur tous les composants précédemment installés.

La routine d’installation d’une application gère automatiquement les informations sur les composants déjà installés, à l’aide du programme d’installation du Installer.Contextprojet. Ces informations d’état sont mises à jour en permanence à mesure que l’instance ServiceProcessInstaller et chaque ServiceInstaller instance est installée par l’utilitaire. Il est généralement inutile que votre code modifie explicitement ces informations d’état.

L’instanciation d’un ServiceProcessInstaller constructeur de classe de base est ComponentInstallerappelée.

Constructeurs

Nom Description
ServiceProcessInstaller()

Crée une instance de la ServiceProcessInstaller classe.

Propriétés

Nom Description
Account

Obtient ou définit le type de compte sous lequel exécuter cette application de service.

CanRaiseEvents

Obtient une valeur indiquant si le composant peut déclencher un événement.

(Hérité de Component)
Container

Obtient le IContainer fichier qui contient le Component.

(Hérité de Component)
Context

Obtient ou définit des informations sur l’installation actuelle.

(Hérité de Installer)
DesignMode

Obtient une valeur qui indique si la Component valeur est actuellement en mode création.

(Hérité de Component)
Events

Obtient la liste des gestionnaires d’événements qui sont attachés à ce Component.

(Hérité de Component)
HelpText

Obtient le texte d’aide affiché pour les options d’installation du service.

Installers

Obtient la collection de programmes d’installation que contient ce programme d’installation.

(Hérité de Installer)
Parent

Obtient ou définit le programme d’installation contenant la collection à laquelle appartient ce programme d’installation.

(Hérité de Installer)
Password

Obtient ou définit le mot de passe associé au compte d’utilisateur sous lequel l’application de service s’exécute.

Site

Obtient ou définit le ISite de Component.

(Hérité de Component)
Username

Obtient ou définit le compte d’utilisateur sous lequel l’application de service s’exécute.

Méthodes

Nom Description
Commit(IDictionary)

En cas de substitution dans une classe dérivée, termine la transaction d’installation.

(Hérité de Installer)
CopyFromComponent(IComponent)

Implémente la méthode de classe CopyFromComponent(IComponent) de base sans ServiceProcessInstaller comportement spécifique à la classe.

CreateObjRef(Type)

Crée un objet qui contient toutes les informations pertinentes requises pour générer un proxy utilisé pour communiquer avec un objet distant.

(Hérité de MarshalByRefObject)
Dispose()

Libère toutes les ressources utilisées par le Component.

(Hérité de Component)
Dispose(Boolean)

Libère les ressources non managées utilisées par les Component ressources gérées et libère éventuellement les ressources managées.

(Hérité de Component)
Equals(Object)

Détermine si l’objet spécifié est égal à l’objet actuel.

(Hérité de Object)
GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetLifetimeService()
Obsolète.

Récupère l’objet de service de durée de vie actuel qui contrôle la stratégie de durée de vie de cette instance.

(Hérité de MarshalByRefObject)
GetService(Type)

Retourne un objet qui représente un service fourni par le Component ou par son Container.

(Hérité de Component)
GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
InitializeLifetimeService()
Obsolète.

Obtient un objet de service de durée de vie pour contrôler la stratégie de durée de vie de cette instance.

(Hérité de MarshalByRefObject)
Install(IDictionary)

Écrit les informations de l’application de service dans le Registre. Cette méthode est destinée à être utilisée par les outils d’installation, qui appellent automatiquement les méthodes appropriées.

IsEquivalentInstaller(ComponentInstaller)

Détermine si le programme d’installation spécifié installe le même objet que ce programme d’installation.

(Hérité de ComponentInstaller)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
MemberwiseClone(Boolean)

Crée une copie superficielle de l’objet actuel MarshalByRefObject .

(Hérité de MarshalByRefObject)
OnAfterInstall(IDictionary)

Déclenche l’événement AfterInstall.

(Hérité de Installer)
OnAfterRollback(IDictionary)

Déclenche l’événement AfterRollback.

(Hérité de Installer)
OnAfterUninstall(IDictionary)

Déclenche l’événement AfterUninstall.

(Hérité de Installer)
OnBeforeInstall(IDictionary)

Déclenche l’événement BeforeInstall.

(Hérité de Installer)
OnBeforeRollback(IDictionary)

Déclenche l’événement BeforeRollback.

(Hérité de Installer)
OnBeforeUninstall(IDictionary)

Déclenche l’événement BeforeUninstall.

(Hérité de Installer)
OnCommitted(IDictionary)

Déclenche l’événement Committed.

(Hérité de Installer)
OnCommitting(IDictionary)

Déclenche l’événement Committing.

(Hérité de Installer)
Rollback(IDictionary)

Restaure les informations d’application de service écrites dans le Registre par la procédure d’installation. Cette méthode est destinée à être utilisée par les outils d’installation, qui traitent automatiquement les méthodes appropriées.

ToString()

Retourne un String nom contenant le nom du Component, le cas échéant. Cette méthode ne doit pas être remplacée.

(Hérité de Component)
Uninstall(IDictionary)

En cas de substitution dans une classe dérivée, supprime une installation.

(Hérité de Installer)

Événements

Nom Description
AfterInstall

Se produit après l’exécution Install(IDictionary) des méthodes de tous les programmes d’installation de la Installers propriété.

(Hérité de Installer)
AfterRollback

Se produit après la restauration de tous les programmes d’installation de la Installers propriété.

(Hérité de Installer)
AfterUninstall

Se produit après que tous les programmes d’installation de la Installers propriété effectuent leurs opérations de désinstallation.

(Hérité de Installer)
BeforeInstall

Se produit avant l’exécution de la Install(IDictionary) méthode de chaque programme d’installation dans la collection d’installation.

(Hérité de Installer)
BeforeRollback

Se produit avant que les programmes d’installation de la Installers propriété ne soient restaurés.

(Hérité de Installer)
BeforeUninstall

Se produit avant que les programmes d’installation de la Installers propriété effectuent leurs opérations de désinstallation.

(Hérité de Installer)
Committed

Se produit une fois que tous les programmes d’installation de la Installers propriété ont validé leurs installations.

(Hérité de Installer)
Committing

Se produit avant que les programmes d’installation dans la Installers propriété valident leurs installations.

(Hérité de Installer)
Disposed

Se produit lorsque le composant est supprimé par un appel à la Dispose() méthode.

(Hérité de Component)

S’applique à

Voir aussi