ServiceProcessInstaller ServiceProcessInstaller ServiceProcessInstaller ServiceProcessInstaller Class

Definition

Installiert eine ausführbare Datei, die Klassen enthält, die ServiceBase erweitern.Installs an executable containing classes that extend ServiceBase. Diese Klasse wird von Installationsprogrammen, z. B. von InstallUtil.exe, beim Installieren einer Dienstanwendung aufgerufen.This class is called by installation utilities, such as InstallUtil.exe, when installing a service application.

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
Vererbung

Beispiele

Im folgenden Beispiel wird ein Projekt Installationsprogramm mit dem Namen MyProjectInstaller erstellt, Installerdas von erbt.The following example creates a project installer called MyProjectInstaller, which inherits from Installer. Es wird davon ausgegangen, dass es eine ausführbare Dienst Datei gibt, die zwei Dienste enthält: "Hello-World Service 1" und "Hello-World Service 2".It is assumed there is a service executable that contains two services, "Hello-World Service 1" and "Hello-World Service 2". Innerhalb des Konstruktors für "MyProjectInstaller" (der vom Installations Dienstprogramm aufgerufen wird) ServiceInstaller werden für jeden Dienst Objekte erstellt, und für ServiceProcessInstaller die ausführbare Datei wird ein erstellt.Within the constructor for MyProjectInstaller (which would be called by the install utility), ServiceInstaller objects are created for each service, and a ServiceProcessInstaller is created for the executable. Damit das Installationsprogramm MyProjectInstaller als gültiges Installationsprogramm erkennt, wird das RunInstallerAttribute -Attribut auf truefestgelegt.For the install utility to recognize MyProjectInstaller as a valid installer, the RunInstallerAttribute attribute is set to true.

Optionale Eigenschaften werden für das prozessinstallations Programm und die Dienst Installationsprogramme festgelegt, bevor die Installations Installers Programme der Auflistung hinzugefügt werden.Optional properties are set on the process installer and the service installers before the installers are added to the Installers collection. Wenn das Installations Hilfsprogramm auf MyProjectInstaller zugreift, werden die Installers Objekte, die der Auflistung InstallerCollection.Add durch einen-Aufrufvorgang hinzugefügt werden, nacheinander installiert.When the install utility accesses MyProjectInstaller, the objects added to the Installers collection through a call to InstallerCollection.Add will be installed in turn. Während des Vorgangs verwaltet das Installationsprogramm Zustandsinformationen, die angeben, welche Objekte installiert wurden. Daher kann jedes Objekt im Falle eines Installations Fehlers gesichert werden.During the process, the installer maintains state information indicating which objects have been installed, so each object can be backed out in turn in case of an installation failure.

Normalerweise würden Sie die projekttinstallationsklasse nicht explizit instanziieren.Normally, you would not instantiate your project installer class explicitly. Sie würden Sie erstellen und hinzufügen RunInstallerAttribute, aber das Installations Dienstprogramm ruft tatsächlich auf und instanziiert die-Klasse.You would create it and add the RunInstallerAttribute, but the install utility actually calls, and therefore instantiates, the class.

#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

Hinweise

Der ServiceProcessInstaller funktioniert gemeinsam mit allen Diensten in einer ausführbaren Datei.The ServiceProcessInstaller does work common to all services in an executable. Sie wird vom Installationsprogramm zum Schreiben von Registrierungs Werten verwendet, die mit den Diensten verknüpft sind, die Sie installieren möchten.It is used by the installation utility to write registry values associated with services you want to install.

Erstellen Sie zum Installieren eines Dienstanbieter eine projektinstallerklasse, Installerdie von erbt RunInstallerAttribute , und legen Sie truefür die-Klasse auf fest.To install a service, create a project installer class that inherits from Installer, and set the RunInstallerAttribute on the class to true. Instanziieren Sie in Ihrem Projekt eine ServiceProcessInstaller Instanz pro Dienst Anwendung und eine ServiceInstaller Instanz für jeden Dienst in der Anwendung.Within your project, instantiate one ServiceProcessInstaller instance per service application, and one ServiceInstaller instance for each service in the application. Fügen Sie abschließend die ServiceProcessInstaller -Instanz und ServiceInstaller die-Instanzen Ihrer projektinstallerklasse hinzu.Finally, add the ServiceProcessInstaller instance and the ServiceInstaller instances to your project installer class.

Wenn "installutil. exe" ausgeführt wird, sucht das Hilfsprogramm nach Klassen in der RunInstallerAttribute Dienstassembly true, bei denen auf festgelegt ist.When InstallUtil.exe runs, the utility looks for classes in the service assembly with the RunInstallerAttribute set to true. Fügen Sie der Dienstassembly Klassen hinzu, indem Sie Sie Installers der Auflistung hinzufügen, die Ihrem Projekt Installationsprogramm zugeordnet ist.Add classes to the service assembly by adding them to the Installers collection associated with your project installer. Wenn RunInstallerAttributeden Wert hat,wirddasProjektInstallationsprogrammignoriert.falseIf RunInstallerAttribute is false, the install utility ignores the project installer.

Bei einer Instanz von ServiceProcessInstallerkönnen Sie die Eigenschaften ändern, indem Sie angeben, dass eine Dienst Anwendung unter einem anderen Konto als dem angemeldeten Benutzer ausgeführt wird.For an instance of ServiceProcessInstaller, properties you can modify include specifying that a service application run under an account other than the logged-on user. Sie können ein bestimmtes Username -und-Paar angeben, unter dem der- Password Dienst ausgeführt werden soll Account , oder Sie können verwenden, um anzugeben, dass der Dienst unter dem System Konto des Computers, einem lokalen oder Netzwerkdienst Konto oder einem Benutzerkonto ausgeführt wird.You can specify a particular Username and Password pair under which the service should run, or you can use Account to specify that the service run under the computer's System account, a local or network service account, or a user account.

Hinweis

Das System Konto des Computers ist nicht mit dem Administrator Konto identisch.The computer's System account is not the same as the Administrator account.

Normalerweise wird die-Methode ServiceInstaller nicht innerhalb Ihres Codes aufgerufen. Sie werden in der Regel nur vom Installations Dienstprogramm aufgerufen.Normally, you do not call the methods on ServiceInstaller within your code; they are generally called only by the install utility. Das Installationsprogramm ruft während des ServiceProcessInstaller.Install Installations ServiceInstaller.Install Vorgangs automatisch die-Methode und die-Methode auf.The install utility automatically calls the ServiceProcessInstaller.Install and ServiceInstaller.Install methods during the installation process. Sie werden ggf. Fehler durch Aufrufen Rollback von (oder ServiceInstaller.Rollback) für alle zuvor installierten Komponenten gesichert.It backs out failures, if necessary, by calling Rollback (or ServiceInstaller.Rollback) on all previously installed components.

Mit der Installationsroutine einer Anwendung werden Informationen zu den bereits installierten Komponenten automatisch verwaltet. dabei werden die Installer.Context-Installationsdateien des Projekts verwendet.An application's install routine maintains information automatically about the components already installed, using the project installer's Installer.Context. Diese Zustandsinformationen werden fortlaufend aktualisiert, ServiceProcessInstaller wenn die- ServiceInstaller Instanz und jede Instanz vom-Hilfsprogramm installiert wird.This state information is continuously updated as the ServiceProcessInstaller instance and each ServiceInstaller instance is installed by the utility. Es ist in der Regel nicht erforderlich, dass Ihr Code diese Zustandsinformationen explizit ändert.It is usually unnecessary for your code to modify this state information explicitly.

Durch das Instanziieren eines ServiceProcessInstaller wird der ComponentInstallerBasisklassenkonstruktor aufgerufen.Instantiating a ServiceProcessInstaller causes the base class constructor, ComponentInstaller, to be called.

Konstruktoren

ServiceProcessInstaller() ServiceProcessInstaller() ServiceProcessInstaller() ServiceProcessInstaller()

Erstellt eine neue Instanz der ServiceProcessInstaller-Klasse.Creates a new instance of the ServiceProcessInstaller class.

Eigenschaften

Account Account Account Account

Ruft den Typ des Kontos ab, unter dem die Dienstanwendung ausgeführt wird, oder legt diesen fest.Gets or sets the type of account under which to run this service application.

CanRaiseEvents CanRaiseEvents CanRaiseEvents CanRaiseEvents

Ruft einen Wert ab, der angibt, ob die Komponente ein Ereignis auslösen kann.Gets a value indicating whether the component can raise an event.

(Inherited from Component)
Container Container Container Container

Ruft den IContainer ab, der die Component enthält.Gets the IContainer that contains the Component.

(Inherited from Component)
Context Context Context Context

Ruft Informationen über die derzeitige Installation ab oder legt diese fest.Gets or sets information about the current installation.

(Inherited from Installer)
DesignMode DesignMode DesignMode DesignMode

Ruft einen Wert ab, der angibt, ob sich Component gegenwärtig im Entwurfsmodus befindet.Gets a value that indicates whether the Component is currently in design mode.

(Inherited from Component)
Events Events Events Events

Ruft die Liste der Ereignishandler ab, die dieser Component angefügt sind.Gets the list of event handlers that are attached to this Component.

(Inherited from Component)
HelpText HelpText HelpText HelpText

Ruft den Hilfetext ab, der zu den Installationsoptionen für Dienste angezeigt wird.Gets help text displayed for service installation options.

Installers Installers Installers Installers

Ruft die Auflistung von Installationsprogrammen ab, die dieses Installationsprogramm enthält.Gets the collection of installers that this installer contains.

(Inherited from Installer)
Parent Parent Parent Parent

Ruft das Installationsprogramm ab, das die Auflistung mit diesem Installationsprogramm enthält, oder legt dieses fest.Gets or sets the installer containing the collection that this installer belongs to.

(Inherited from Installer)
Password Password Password Password

Ruft das zugeordnete Kennwort des Benutzerkontos ab, unter dem die Dienstanwendung ausgeführt wird, oder legt dieses fest.Gets or sets the password associated with the user account under which the service application runs.

Site Site Site Site

Ruft den ISite von Component ab oder legt ihn fest.Gets or sets the ISite of the Component.

(Inherited from Component)
Username Username Username Username

Ruft das Benutzerkonto ab, unter dem die Dienstanwendung ausgeführt wird, oder legt dieses fest.Gets or sets the user account under which the service application will run.

Methoden

Commit(IDictionary) Commit(IDictionary) Commit(IDictionary) Commit(IDictionary)

Schließt beim Überschreiben in einer abgeleiteten Klasse die Installationstransaktion ab.When overridden in a derived class, completes the install transaction.

(Inherited from Installer)
CopyFromComponent(IComponent) CopyFromComponent(IComponent) CopyFromComponent(IComponent) CopyFromComponent(IComponent)

Implementiert die CopyFromComponent(IComponent)-Methode der Basisklasse ohne das für die ServiceProcessInstaller-Klasse spezifische Verhalten.Implements the base class CopyFromComponent(IComponent) method with no ServiceProcessInstaller class-specific behavior.

CreateObjRef(Type) CreateObjRef(Type) CreateObjRef(Type) CreateObjRef(Type)

Erstellt ein Objekt mit allen relevanten Informationen, die zum Generieren eines Proxys für die Kommunikation mit einem Remoteobjekt erforderlich sind.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Inherited from MarshalByRefObject)
Dispose() Dispose() Dispose() Dispose()

Gibt alle vom Component verwendeten Ressourcen frei.Releases all resources used by the Component.

(Inherited from Component)
Dispose(Boolean) Dispose(Boolean) Dispose(Boolean) Dispose(Boolean)

Gibt die von Component verwendeten nicht verwalteten Ressourcen und optional die verwalteten Ressourcen frei.Releases the unmanaged resources used by the Component and optionally releases the managed resources.

(Inherited from Component)
Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Fungiert als Standardhashfunktion.Serves as the default hash function.

(Inherited from Object)
GetLifetimeService() GetLifetimeService() GetLifetimeService() GetLifetimeService()

Ruft das aktuelle Lebensdauerdienstobjekt ab, das die Lebensdauerrichtlinien für diese Instanz steuert.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
GetService(Type) GetService(Type) GetService(Type) GetService(Type)

Gibt ein Objekt zurück, das einen von der Component oder von deren Container bereitgestellten Dienst darstellt.Returns an object that represents a service provided by the Component or by its Container.

(Inherited from Component)
GetType() GetType() GetType() GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Inherited from Object)
InitializeLifetimeService() InitializeLifetimeService() InitializeLifetimeService() InitializeLifetimeService()

Ruft ein Lebensdauerdienstobjekt zur Steuerung der Lebensdauerrichtlinie für diese Instanz ab.Obtains a lifetime service object to control the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
Install(IDictionary) Install(IDictionary) Install(IDictionary) Install(IDictionary)

Schreibt Dienstanwendungsinformationen in die Registrierung.Writes service application information to the registry. Diese Methode ist für die Verwendung durch Installationstools bestimmt, die die entsprechenden Methoden automatisch aufrufen.This method is meant to be used by installation tools, which call the appropriate methods automatically.

IsEquivalentInstaller(ComponentInstaller) IsEquivalentInstaller(ComponentInstaller) IsEquivalentInstaller(ComponentInstaller) IsEquivalentInstaller(ComponentInstaller)

Bestimmt, ob das angegebene Installationsprogramm dieselben Objekte installiert wie dieses Installationsprogramm.Determines if the specified installer installs the same object as this installer.

(Inherited from ComponentInstaller)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Inherited from Object)
MemberwiseClone(Boolean) MemberwiseClone(Boolean) MemberwiseClone(Boolean) MemberwiseClone(Boolean)

Erstellt eine flache Kopie des aktuellen MarshalByRefObject-Objekts.Creates a shallow copy of the current MarshalByRefObject object.

(Inherited from MarshalByRefObject)
OnAfterInstall(IDictionary) OnAfterInstall(IDictionary) OnAfterInstall(IDictionary) OnAfterInstall(IDictionary)

Löst das AfterInstall-Ereignis aus.Raises the AfterInstall event.

(Inherited from Installer)
OnAfterRollback(IDictionary) OnAfterRollback(IDictionary) OnAfterRollback(IDictionary) OnAfterRollback(IDictionary)

Löst das AfterRollback-Ereignis aus.Raises the AfterRollback event.

(Inherited from Installer)
OnAfterUninstall(IDictionary) OnAfterUninstall(IDictionary) OnAfterUninstall(IDictionary) OnAfterUninstall(IDictionary)

Löst das AfterUninstall-Ereignis aus.Raises the AfterUninstall event.

(Inherited from Installer)
OnBeforeInstall(IDictionary) OnBeforeInstall(IDictionary) OnBeforeInstall(IDictionary) OnBeforeInstall(IDictionary)

Löst das BeforeInstall-Ereignis aus.Raises the BeforeInstall event.

(Inherited from Installer)
OnBeforeRollback(IDictionary) OnBeforeRollback(IDictionary) OnBeforeRollback(IDictionary) OnBeforeRollback(IDictionary)

Löst das BeforeRollback-Ereignis aus.Raises the BeforeRollback event.

(Inherited from Installer)
OnBeforeUninstall(IDictionary) OnBeforeUninstall(IDictionary) OnBeforeUninstall(IDictionary) OnBeforeUninstall(IDictionary)

Löst das BeforeUninstall-Ereignis aus.Raises the BeforeUninstall event.

(Inherited from Installer)
OnCommitted(IDictionary) OnCommitted(IDictionary) OnCommitted(IDictionary) OnCommitted(IDictionary)

Löst das Committed-Ereignis aus.Raises the Committed event.

(Inherited from Installer)
OnCommitting(IDictionary) OnCommitting(IDictionary) OnCommitting(IDictionary) OnCommitting(IDictionary)

Löst das Committing-Ereignis aus.Raises the Committing event.

(Inherited from Installer)
Rollback(IDictionary) Rollback(IDictionary) Rollback(IDictionary) Rollback(IDictionary)

Führt ein Rollback der Informationen über Dienstanwendungen durch, die bei der Installation in die Registrierung geschrieben wurden.Rolls back service application information written to the registry by the installation procedure. Diese Methode ist nur für die Verwendung durch Installationstools vorgesehen, die die entsprechenden Methoden automatisch verarbeiten.This method is meant to be used by installation tools, which process the appropriate methods automatically.

ToString() ToString() ToString() ToString()

Gibt einen String zurück, der den Namen der Component enthält (sofern vorhanden).Returns a String containing the name of the Component, if any. Diese Methode darf nicht überschrieben werden.This method should not be overridden.

(Inherited from Component)
Uninstall(IDictionary) Uninstall(IDictionary) Uninstall(IDictionary) Uninstall(IDictionary)

Entfernt beim Überschreiben in einer abgeleiteten Klasse eine Installation.When overridden in a derived class, removes an installation.

(Inherited from Installer)

Ereignisse

AfterInstall AfterInstall AfterInstall AfterInstall

Tritt ein, nachdem die Install(IDictionary)-Methoden aller in der Installers-Eigenschaft enthaltenen Installationsprogramme ausgeführt wurden.Occurs after the Install(IDictionary) methods of all the installers in the Installers property have run.

(Inherited from Installer)
AfterRollback AfterRollback AfterRollback AfterRollback

Tritt ein, nachdem ein Rollback aller Installationen der Installationsprogramme in der Installers-Eigenschaft ausgeführt wurde.Occurs after the installations of all the installers in the Installers property are rolled back.

(Inherited from Installer)
AfterUninstall AfterUninstall AfterUninstall AfterUninstall

Tritt ein, nachdem alle Installationsprogramme in der Installers-Eigenschaft ihre jeweiligen Deinstallationsvorgänge ausgeführt haben.Occurs after all the installers in the Installers property perform their uninstallation operations.

(Inherited from Installer)
BeforeInstall BeforeInstall BeforeInstall BeforeInstall

Tritt ein, bevor die Install(IDictionary)-Methode aller in der Auflistung der Installationsprogramme enthaltenen Installationsprogramme ausgeführt worden ist.Occurs before the Install(IDictionary) method of each installer in the installer collection has run.

(Inherited from Installer)
BeforeRollback BeforeRollback BeforeRollback BeforeRollback

Tritt ein, bevor ein Rollback der Installationsprogramme in der Installers-Eigenschaft ausgeführt wird.Occurs before the installers in the Installers property are rolled back.

(Inherited from Installer)
BeforeUninstall BeforeUninstall BeforeUninstall BeforeUninstall

Tritt ein, bevor die Installationsprogramme in der Installers-Eigenschaft ihre jeweiligen Deinstallationsvorgänge ausführen.Occurs before the installers in the Installers property perform their uninstall operations.

(Inherited from Installer)
Committed Committed Committed Committed

Tritt ein, nachdem alle Installationsprogramme in der Installers-Eigenschaft ein Commit für ihre Installationen ausgeführt haben.Occurs after all the installers in the Installers property have committed their installations.

(Inherited from Installer)
Committing Committing Committing Committing

Tritt ein, bevor die Installationsprogramme in der Installers-Eigenschaft ein Commit für ihre Installationen ausführen.Occurs before the installers in the Installers property commit their installations.

(Inherited from Installer)
Disposed Disposed Disposed Disposed

Tritt ein, wenn die Komponente durch einen Aufruf der Dispose()-Methode freigegeben wird.Occurs when the component is disposed by a call to the Dispose() method.

(Inherited from Component)

Gilt für:

Siehe auch