ServiceProcessInstaller Osztály

Definíció

Olyan végrehajtható osztályokat tartalmazó végrehajtható elemet telepít, amely kiterjed ServiceBase. Ezt az osztályt a telepítési segédprogramok, például a InstallUtil.exehívják meg egy szolgáltatásalkalmazás telepítésekor.

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
Öröklődés

Példák

Az alábbi példa létrehoz egy MyProjectInstaller nevű projekttelepítőt, amely a következőtől Installeröröklődik: Feltételezzük, hogy van egy végrehajtható szolgáltatás, amely két szolgáltatást tartalmaz: "Hello-World Service 1" és "Hello-World Service 2". A MyProjectInstaller konstruktorán belül (amelyet a telepítési segédprogram hívna meg) ServiceInstaller az objektumok minden szolgáltatáshoz létrejönnek, és létrejön egy ServiceProcessInstaller a végrehajtható példányhoz. Ahhoz, hogy a telepítő segédprogram felismerje a MyProjectInstallert érvényes telepítőként, az attribútum a RunInstallerAttribute következőre truevan állítva: .

Az opcionális tulajdonságok a folyamattelepítőn és a szolgáltatástelepítőn vannak beállítva, mielőtt a telepítők hozzá lettek adva a Installers gyűjteményhez. Amikor a telepítő segédprogram hozzáfér a MyProjectInstallerhez, a gyűjteményhez Installers egy hívással InstallerCollection.Add hozzáadott objektumok is telepítve lesznek. A folyamat során a telepítő állapotinformációkat tart fenn, amelyek jelzik, hogy mely objektumok lettek telepítve, így minden objektumról biztonsági másolatot készíthet a telepítés sikertelensége esetén.

Általában nem példányosítaná a projekttelepítő osztályt explicit módon. Létrehozná, és hozzáadná a RunInstallerAttribute, de a telepítési segédprogram ténylegesen meghívja, és ezért példányosítja az osztályt.

#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

Megjegyzések

A ServiceProcessInstaller végrehajtható fájlokban az összes szolgáltatás közösen működik. A telepítési segédprogram a telepíteni kívánt szolgáltatásokkal társított beállításjegyzék-értékek írására használja.

Szolgáltatás telepítéséhez hozzon létre egy olyan projekttelepítői osztályt, amely öröklődik, Installerés állítsa az osztályon a RunInstallerAttribute következőre true: . A projekten belül példányosíthat egy ServiceProcessInstaller példányt szolgáltatásalkalmazásonként, és egy ServiceInstaller példányt az alkalmazás minden egyes szolgáltatásához. Végül adja hozzá a ServiceProcessInstaller példányt és a ServiceInstaller példányokat a projekttelepítő osztályhoz.

Amikor InstallUtil.exe fut, a segédprogram a szolgáltatásszerelvényben lévő osztályokat keresi a RunInstallerAttribute következő értékre állítva true: . Osztályokat adhat hozzá a szolgáltatásszerelvényhez úgy, hogy hozzáadja őket a Installers projekttelepítőhöz társított gyűjteményhez. Ha RunInstallerAttribute igen false, a telepítési segédprogram figyelmen kívül hagyja a projekttelepítőt.

Egy példány ServiceProcessInstalleresetében a módosítható tulajdonságok közé tartozik annak megadása, hogy egy szolgáltatásalkalmazás a bejelentkezett felhasználótól eltérő fiók alatt fusson. Megadhat egy adott Username és Password párot, amely alatt a szolgáltatásnak futnia kell, vagy megadhatja Account , hogy a szolgáltatás a számítógép rendszerfiókja, egy helyi vagy hálózati szolgáltatásfiók vagy felhasználói fiók alatt fusson.

Note

A számítógép rendszerfiókja nem ugyanaz, mint a rendszergazdai fiók.

Általában nem hívja be a metódusokat ServiceInstaller a kódon belül, általában csak a telepítési segédprogram hívja meg őket. A telepítési segédprogram a telepítési folyamat során automatikusan meghívja a metódusokat és ServiceProcessInstaller.Install a ServiceInstaller.Install metódusokat. Szükség esetén az összes korábban telepített összetevő meghívásával Rollback (vagy ServiceInstaller.Rollback) visszaállítja a hibákat.

Az alkalmazás telepítési rutinja automatikusan megőrzi a már telepített összetevőkkel kapcsolatos információkat a projekttelepítő Installer.Contexthasználatával. Ez az állapotinformáció folyamatosan frissül a ServiceProcessInstaller példányként, és minden ServiceInstaller példányt a segédprogram telepített. Általában szükségtelen, hogy a kód explicit módon módosítsa ezeket az állapotinformációkat.

A ServiceProcessInstaller példányosítás az alaposztály konstruktorának ComponentInstallermeghívását eredményezi.

Konstruktorok

Name Description
ServiceProcessInstaller()

Létrehozza az osztály új példányát ServiceProcessInstaller .

Tulajdonságok

Name Description
Account

Lekéri vagy beállítja a szolgáltatásalkalmazás futtatásához tartozó fiók típusát.

CanRaiseEvents

Beolvas egy értéket, amely jelzi, hogy az összetevő képes-e eseményt létrehozni.

(Öröklődés forrása Component)
Container

Lekéri a IContainer .Component

(Öröklődés forrása Component)
Context

Lekéri vagy beállítja az aktuális telepítéssel kapcsolatos információkat.

(Öröklődés forrása Installer)
DesignMode

Olyan értéket kap, amely jelzi, hogy az Component aktuálisan tervezési módban van-e.

(Öröklődés forrása Component)
Events

Lekéri az ehhez Componentcsatolt eseménykezelők listáját.

(Öröklődés forrása Component)
HelpText

A szolgáltatástelepítési beállításokhoz megjelenített súgószöveg.

Installers

Lekéri a telepítő által tartalmazott telepítők gyűjteményét.

(Öröklődés forrása Installer)
Parent

Lekéri vagy beállítja azt a gyűjteményt tartalmazó telepítőt, amelyhez ez a telepítő tartozik.

(Öröklődés forrása Installer)
Password

Lekéri vagy beállítja annak a felhasználói fióknak a jelszavát, amely alatt a szolgáltatásalkalmazás fut.

Site

Lekéri vagy megadja a ISite értékét a Component-hez.

(Öröklődés forrása Component)
Username

Lekéri vagy beállítja azt a felhasználói fiókot, amelyen a szolgáltatásalkalmazás futni fog.

Metódusok

Name Description
Commit(IDictionary)

Ha felül van bírálva egy származtatott osztályban, befejezi a telepítési tranzakciót.

(Öröklődés forrása Installer)
CopyFromComponent(IComponent)

Az alaposztály CopyFromComponent(IComponent) metódusát osztályspecifikus viselkedés nélkül ServiceProcessInstaller implementálja.

CreateObjRef(Type)

Létrehoz egy objektumot, amely tartalmazza a távoli objektumokkal való kommunikációhoz használt proxy létrehozásához szükséges összes releváns információt.

(Öröklődés forrása MarshalByRefObject)
Dispose()

Felszabadítja a .-hez használt összes erőforrást Component.

(Öröklődés forrása Component)
Dispose(Boolean)

Felszabadítja a felügyelt erőforrások által Component használt nem felügyelt erőforrásokat, és opcionálisan felszabadítja a felügyelt erőforrásokat.

(Öröklődés forrása Component)
Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

(Öröklődés forrása Object)
GetHashCode()

Ez az alapértelmezett kivonatoló függvény.

(Öröklődés forrása Object)
GetLifetimeService()
Elavult.

Lekéri a példány élettartamszabályzatát vezérlő aktuális élettartam-szolgáltatásobjektumot.

(Öröklődés forrása MarshalByRefObject)
GetService(Type)

Olyan objektumot ad vissza, amely az általa vagy annak által ComponentContainernyújtott szolgáltatást jelöli.

(Öröklődés forrása Component)
GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
InitializeLifetimeService()
Elavult.

Beolvas egy élettartam-szolgáltatásobjektumot a példány élettartam-szabályzatának szabályozásához.

(Öröklődés forrása MarshalByRefObject)
Install(IDictionary)

Szolgáltatásalkalmazás-adatokat ír a beállításjegyzékbe. Ezt a módszert a telepítési eszközöknek kell használniuk, amelyek automatikusan meghívják a megfelelő módszereket.

IsEquivalentInstaller(ComponentInstaller)

Meghatározza, hogy a megadott telepítő ugyanazt az objektumot telepíti-e, mint a telepítő.

(Öröklődés forrása ComponentInstaller)
MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
MemberwiseClone(Boolean)

Az aktuális MarshalByRefObject objektum sekély másolatát hozza létre.

(Öröklődés forrása MarshalByRefObject)
OnAfterInstall(IDictionary)

Az eseményt emeli AfterInstall ki.

(Öröklődés forrása Installer)
OnAfterRollback(IDictionary)

Az eseményt emeli AfterRollback ki.

(Öröklődés forrása Installer)
OnAfterUninstall(IDictionary)

Az eseményt emeli AfterUninstall ki.

(Öröklődés forrása Installer)
OnBeforeInstall(IDictionary)

Az eseményt emeli BeforeInstall ki.

(Öröklődés forrása Installer)
OnBeforeRollback(IDictionary)

Az eseményt emeli BeforeRollback ki.

(Öröklődés forrása Installer)
OnBeforeUninstall(IDictionary)

Az eseményt emeli BeforeUninstall ki.

(Öröklődés forrása Installer)
OnCommitted(IDictionary)

Az eseményt emeli Committed ki.

(Öröklődés forrása Installer)
OnCommitting(IDictionary)

Az eseményt emeli Committing ki.

(Öröklődés forrása Installer)
Rollback(IDictionary)

Visszaállítja a beállításjegyzékbe írt szolgáltatásalkalmazás-adatokat a telepítési eljárással. Ezt a módszert a telepítési eszközöknek kell használniuk, amelyek automatikusan feldolgozzák a megfelelő módszereket.

ToString()

String A ( ha van) nevet tartalmazó értéket Componentad vissza. Ezt a módszert nem szabad felülírni.

(Öröklődés forrása Component)
Uninstall(IDictionary)

Ha felül van bírálva egy származtatott osztályban, eltávolít egy telepítést.

(Öröklődés forrása Installer)

esemény

Name Description
AfterInstall

A tulajdonságban lévő Install(IDictionary) összes telepítő metódusának futtatása után Installers következik be.

(Öröklődés forrása Installer)
AfterRollback

A tulajdonságban lévő Installers összes telepítő telepítése után következik be.

(Öröklődés forrása Installer)
AfterUninstall

Akkor következik be, ha a tulajdonság összes telepítője végrehajtja az Installers eltávolítási műveleteket.

(Öröklődés forrása Installer)
BeforeInstall

A telepítőgyűjteményben lévő összes telepítő metódusának futtatása előtt Install(IDictionary) következik be.

(Öröklődés forrása Installer)
BeforeRollback

A tulajdonság telepítőinek Installers visszaállítása előtt történik.

(Öröklődés forrása Installer)
BeforeUninstall

Mielőtt a tulajdonság telepítői végrehajtanák az Installers eltávolítási műveleteket.

(Öröklődés forrása Installer)
Committed

Akkor fordul elő, ha a tulajdonság összes telepítője véglegesítette a Installers telepítést.

(Öröklődés forrása Installer)
Committing

Mielőtt a tulajdonság telepítői véglegesítik a Installers telepítésüket.

(Öröklődés forrása Installer)
Disposed

Akkor fordul elő, ha az összetevőt a metódus hívása megsemmisíti Dispose() .

(Öröklődés forrása Component)

A következőre érvényes:

Lásd még