ServiceProcessInstaller Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Installeert een uitvoerbaar bestand met klassen die uitbreiden ServiceBase. Deze klasse wordt aangeroepen door installatiehulpprogramma's, zoals InstallUtil.exe, bij het installeren van een servicetoepassing.
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
- Overname
Voorbeelden
In het volgende voorbeeld wordt een projectinstallatieprogramma gemaakt met de naam MyProjectInstaller, dat wordt overgenomen van Installer. Er wordt ervan uitgegaan dat er een uitvoerbaar servicebestand is dat twee services bevat: 'Hello-World Service 1' en 'Hello-World Service 2'. In de constructor voor MyProjectInstaller (die door het installatieprogramma wordt aangeroepen), ServiceInstaller worden objecten gemaakt voor elke service en wordt er een ServiceProcessInstaller gemaakt voor het uitvoerbare bestand. Voor het installatieprogramma om MyProjectInstaller te herkennen als een geldig installatieprogramma, is het RunInstallerAttribute kenmerk ingesteld op true.
Optionele eigenschappen worden ingesteld voor het procesinstallatieprogramma en de serviceinstallatieprogramma's voordat de installatieprogramma's aan de Installers verzameling worden toegevoegd. Wanneer het installatieprogramma Toegang krijgt tot MyProjectInstaller, worden de objecten die via een aanroep aan InstallerCollection.Add de verzameling worden toegevoegdInstallers, weer geïnstalleerd. Tijdens het proces onderhoudt het installatieprogramma statusinformatie die aangeeft welke objecten zijn geïnstalleerd, zodat elk object op zijn beurt kan worden ondersteund in het geval van een installatiefout.
Normaal gesproken zou u uw projectinstallatieklasse niet expliciet instantiëren. U maakt het en voegt het RunInstallerAttributetoe, maar het installatieprogramma roept daadwerkelijk aan en maakt daarom een instantie van de klasse.
#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
Opmerkingen
Dit ServiceProcessInstaller werkt gebruikelijk voor alle services in een uitvoerbaar bestand. Het wordt gebruikt door het installatieprogramma om registerwaarden te schrijven die zijn gekoppeld aan services die u wilt installeren.
Als u een service wilt installeren, maakt u een klasse voor projectinstallatieprogramma's van Installeren stelt u de RunInstallerAttribute klasse truein op . Binnen uw project instantieert u één ServiceProcessInstaller exemplaar per servicetoepassing en één ServiceInstaller exemplaar voor elke service in de toepassing. Voeg ten slotte het ServiceProcessInstaller exemplaar en de ServiceInstaller exemplaren toe aan de klasse van uw projectinstallatieprogramma.
Wanneer InstallUtil.exe wordt uitgevoerd, zoekt het hulpprogramma naar klassen in de serviceassembly met de RunInstallerAttribute set op true. Voeg klassen toe aan de serviceassembly door ze toe te voegen aan de Installers verzameling die is gekoppeld aan uw projectinstallatieprogramma. Als RunInstallerAttribute dat het is false, negeert het installatieprogramma van het project.
Voor een exemplaar van ServiceProcessInstaller, eigenschappen die u kunt wijzigen, omvatten het opgeven dat een servicetoepassing wordt uitgevoerd onder een ander account dan de aangemelde gebruiker. U kunt een bepaald Username en Password paar opgeven waaronder de service moet worden uitgevoerd, of u kunt gebruiken Account om op te geven dat de service wordt uitgevoerd onder het systeemaccount van de computer, een lokaal of netwerkserviceaccount of een gebruikersaccount.
Note
Het systeemaccount van de computer is niet hetzelfde als het beheerdersaccount.
Normaal gesproken roept u de methoden in uw code niet aan ServiceInstaller ; ze worden meestal alleen aangeroepen door het installatieprogramma. Het installatieprogramma roept ServiceProcessInstaller.Install de en ServiceInstaller.Install methoden automatisch aan tijdens het installatieproces. Er worden, indien nodig, fouten geretourneerd door alle eerder geïnstalleerde onderdelen aan te roepen Rollback (of ServiceInstaller.Rollback) .
De installatieroutine van een toepassing onderhoudt automatisch informatie over de onderdelen die al zijn geïnstalleerd, met behulp van de installatieprogramma's van Installer.Contexthet project. Deze statusinformatie wordt continu bijgewerkt wanneer het ServiceProcessInstaller exemplaar en elk ServiceInstaller exemplaar wordt geïnstalleerd door het hulpprogramma. Het is meestal niet nodig dat uw code deze statusinformatie expliciet wijzigt.
Als u een ServiceProcessInstaller instantie maakt, wordt de basisklasseconstructor aangeroepen ComponentInstaller.
Constructors
| Name | Description |
|---|---|
| ServiceProcessInstaller() |
Hiermee maakt u een nieuw exemplaar van de ServiceProcessInstaller klasse. |
Eigenschappen
| Name | Description |
|---|---|
| Account |
Hiermee haalt u het type account op waaronder deze servicetoepassing moet worden uitgevoerd. |
| CanRaiseEvents |
Hiermee wordt een waarde opgehaald die aangeeft of het onderdeel een gebeurtenis kan genereren. (Overgenomen van Component) |
| Container |
Hiermee haalt u het IContainer bestand op dat de Component. (Overgenomen van Component) |
| Context |
Hiermee haalt u informatie over de huidige installatie op of stelt u deze in. (Overgenomen van Installer) |
| DesignMode |
Hiermee wordt een waarde opgehaald die aangeeft of de Component momenteel in de ontwerpmodus is. (Overgenomen van Component) |
| Events |
Hiermee haalt u de lijst met gebeurtenis-handlers op die aan dit Componentbestand zijn gekoppeld. (Overgenomen van Component) |
| HelpText |
Hiermee wordt helptekst weergegeven voor service-installatieopties. |
| Installers |
Hiermee haalt u de verzameling installatieprogramma's op die dit installatieprogramma bevat. (Overgenomen van Installer) |
| Parent |
Hiermee haalt u het installatieprogramma op met de verzameling waartoe dit installatieprogramma behoort. (Overgenomen van Installer) |
| Password |
Hiermee haalt u het wachtwoord op dat is gekoppeld aan het gebruikersaccount waaronder de servicetoepassing wordt uitgevoerd. |
| Site |
Haalt of stelt de ISite van de Component. (Overgenomen van Component) |
| Username |
Hiermee haalt u het gebruikersaccount op waaronder de servicetoepassing wordt uitgevoerd. |
Methoden
| Name | Description |
|---|---|
| Commit(IDictionary) |
Wanneer deze wordt overschreven in een afgeleide klasse, voltooit u de installatietransactie. (Overgenomen van Installer) |
| CopyFromComponent(IComponent) |
Implementeert de basisklassemethode CopyFromComponent(IComponent) zonder ServiceProcessInstaller klassespecifiek gedrag. |
| CreateObjRef(Type) |
Hiermee maakt u een object dat alle relevante informatie bevat die nodig is om een proxy te genereren die wordt gebruikt om te communiceren met een extern object. (Overgenomen van MarshalByRefObject) |
| Dispose() |
Alle resources die worden gebruikt door de Component. (Overgenomen van Component) |
| Dispose(Boolean) |
Publiceert de niet-beheerde resources die worden gebruikt door de Component beheerde resources en brengt eventueel de beheerde resources vrij. (Overgenomen van Component) |
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetLifetimeService() |
Hiermee haalt u het huidige levensduurserviceobject op waarmee het levensduurbeleid voor dit exemplaar wordt beheerd. (Overgenomen van MarshalByRefObject) |
| GetService(Type) |
Hiermee wordt een object geretourneerd dat een service vertegenwoordigt die wordt geleverd door of door de Component service Container. (Overgenomen van Component) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| InitializeLifetimeService() |
Hiermee haalt u een levensduurserviceobject op om het levensduurbeleid voor dit exemplaar te beheren. (Overgenomen van MarshalByRefObject) |
| Install(IDictionary) |
Hiermee schrijft u servicetoepassingsinformatie naar het register. Deze methode is bedoeld om te worden gebruikt door installatieprogramma's, die automatisch de juiste methoden aanroepen. |
| IsEquivalentInstaller(ComponentInstaller) |
Bepaalt of het opgegeven installatieprogramma hetzelfde object installeert als dit installatieprogramma. (Overgenomen van ComponentInstaller) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| MemberwiseClone(Boolean) |
Hiermee maakt u een ondiepe kopie van het huidige MarshalByRefObject object. (Overgenomen van MarshalByRefObject) |
| OnAfterInstall(IDictionary) |
Hiermee wordt de AfterInstall gebeurtenis gegenereerd. (Overgenomen van Installer) |
| OnAfterRollback(IDictionary) |
Hiermee wordt de AfterRollback gebeurtenis gegenereerd. (Overgenomen van Installer) |
| OnAfterUninstall(IDictionary) |
Hiermee wordt de AfterUninstall gebeurtenis gegenereerd. (Overgenomen van Installer) |
| OnBeforeInstall(IDictionary) |
Hiermee wordt de BeforeInstall gebeurtenis gegenereerd. (Overgenomen van Installer) |
| OnBeforeRollback(IDictionary) |
Hiermee wordt de BeforeRollback gebeurtenis gegenereerd. (Overgenomen van Installer) |
| OnBeforeUninstall(IDictionary) |
Hiermee wordt de BeforeUninstall gebeurtenis gegenereerd. (Overgenomen van Installer) |
| OnCommitted(IDictionary) |
Hiermee wordt de Committed gebeurtenis gegenereerd. (Overgenomen van Installer) |
| OnCommitting(IDictionary) |
Hiermee wordt de Committing gebeurtenis gegenereerd. (Overgenomen van Installer) |
| Rollback(IDictionary) |
Hiermee worden servicetoepassingsinformatie teruggedraaid die door de installatieprocedure naar het register is geschreven. Deze methode is bedoeld om te worden gebruikt door installatiehulpprogramma's, die automatisch de juiste methoden verwerken. |
| ToString() |
Retourneert een String met de naam van de Component, indien van toepassing. Deze methode mag niet worden overschreven. (Overgenomen van Component) |
| Uninstall(IDictionary) |
Wanneer deze wordt overschreven in een afgeleide klasse, verwijdert u een installatie. (Overgenomen van Installer) |
gebeurtenis
| Name | Description |
|---|---|
| AfterInstall |
Vindt plaats nadat de Install(IDictionary) methoden van alle installatieprogramma's in de Installers eigenschap zijn uitgevoerd. (Overgenomen van Installer) |
| AfterRollback |
Vindt plaats nadat de installaties van alle installatieprogramma's in de Installers eigenschap zijn teruggedraaid. (Overgenomen van Installer) |
| AfterUninstall |
Vindt plaats nadat alle installatieprogramma's in de Installers eigenschap hun verwijderingsbewerkingen uitvoeren. (Overgenomen van Installer) |
| BeforeInstall |
Vindt plaats voordat de Install(IDictionary) methode van elk installatieprogramma in de installatieverzameling is uitgevoerd. (Overgenomen van Installer) |
| BeforeRollback |
Vindt plaats voordat de installatieprogramma's in de Installers eigenschap worden teruggedraaid. (Overgenomen van Installer) |
| BeforeUninstall |
Vindt plaats voordat de installatieprogramma's in de Installers eigenschap hun verwijderingsbewerkingen uitvoeren. (Overgenomen van Installer) |
| Committed |
Vindt plaats nadat alle installatieprogramma's in de Installers eigenschap hun installaties hebben doorgevoerd. (Overgenomen van Installer) |
| Committing |
Vindt plaats voordat de installatieprogramma's in de Installers eigenschap hun installaties doorvoeren. (Overgenomen van Installer) |
| Disposed |
Treedt op wanneer het onderdeel wordt verwijderd door een aanroep naar de Dispose() methode. (Overgenomen van Component) |