ServiceProcessInstaller Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Instaluje plik wykonywalny zawierający klasy rozszerzające klasę ServiceBase. Ta klasa jest wywoływana przez narzędzia instalacyjne, takie jak InstallUtil.exe, podczas instalowania aplikacji usługi.
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
- Dziedziczenie
Przykłady
Poniższy przykład tworzy instalatora projektu o nazwie MyProjectInstaller, który dziedziczy z elementu Installer. Zakłada się, że istnieje plik wykonywalny usługi zawierający dwie usługi" "Hello-World Service 1" i "Hello-World Service 2". W konstruktorze programu MyProjectInstaller (wywoływanym przez narzędzie instalacyjne) ServiceInstaller obiekty są tworzone dla każdej usługi, a ServiceProcessInstaller obiekt jest tworzony dla pliku wykonywalnego. Aby narzędzie instalacyjne rozpoznawało program MyProjectInstaller jako prawidłowy instalator, RunInstallerAttribute atrybut jest ustawiony na true
wartość .
Opcjonalne właściwości są ustawiane w instalatorze procesu, a instalatory usług przed dodaniu instalatorów do kolekcji Installers . Gdy narzędzie instalacyjne uzyskuje dostęp do narzędzia MyProjectInstaller, obiekty dodane do Installers kolekcji za pośrednictwem wywołania InstallerCollection.Add zostaną zainstalowane z kolei. Podczas procesu instalator przechowuje informacje o stanie wskazujące, które obiekty zostały zainstalowane, dzięki czemu każdy obiekt może zostać wycofany z kolei w przypadku awarii instalacji.
Zwykle nie należy jawnie utworzyć wystąpienia klasy instalatora projektu. Należy go utworzyć i dodać , RunInstallerAttributeale narzędzie instalacyjne faktycznie wywołuje, a w związku z tym tworzy wystąpienie klasy .
#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
Uwagi
Funkcja ServiceProcessInstaller działa często dla wszystkich usług w pliku wykonywalnym. Jest on używany przez narzędzie instalacyjne do zapisywania wartości rejestru skojarzonych z usługami, które chcesz zainstalować.
Aby zainstalować usługę, utwórz klasę instalatora projektu, która dziedziczy z Installerklasy , i ustaw RunInstallerAttribute dla klasy wartość true
. W projekcie utwórz wystąpienie jednego ServiceProcessInstaller wystąpienia dla aplikacji usługi i jedno ServiceInstaller wystąpienie dla każdej usługi w aplikacji. Na koniec dodaj ServiceProcessInstaller wystąpienie i ServiceInstaller wystąpienia do klasy instalatora projektu.
Po uruchomieniu InstallUtil.exe narzędzie wyszukuje klasy w zestawie usługi z ustawioną wartością RunInstallerAttributetrue
. Dodaj klasy do zestawu usługi, dodając je do kolekcji skojarzonej Installers z instalatorem projektu. Jeśli RunInstallerAttribute to false
, narzędzie instalacyjne ignoruje instalatora projektu.
W przypadku wystąpienia ServiceProcessInstallerprogramu właściwości można modyfikować, określając, że aplikacja usługi jest uruchamiana na koncie innym niż zalogowany użytkownik. Można określić określoną Username parę i Password , w ramach której ma być uruchomiona usługa, lub użyć Account polecenia , aby określić, że usługa jest uruchamiana na koncie systemowym komputera, koncie usługi lokalnej lub sieciowej albo koncie użytkownika.
Uwaga
Konto systemowe komputera nie jest takie samo jak konto administratora.
Zwykle metody nie są wywoływane ServiceInstaller w kodzie. Są one zwykle wywoływane tylko przez narzędzie instalacyjne. Narzędzie instalacyjne automatycznie wywołuje ServiceProcessInstaller.Install metody i ServiceInstaller.Install podczas procesu instalacji. W razie potrzeby usuwa błędy, wywołując metodę Rollback (lub ServiceInstaller.Rollback) na wszystkich wcześniej zainstalowanych składnikach.
Procedura instalacji aplikacji automatycznie przechowuje informacje o już zainstalowanych składnikach przy użyciu instalatora Installer.Contextprojektu . Te informacje o stanie są stale aktualizowane jako ServiceProcessInstaller wystąpienie, a każde ServiceInstaller wystąpienie jest instalowane przez narzędzie . Zwykle kod nie musi jawnie modyfikować tych informacji o stanie.
Utworzenie wystąpienia powoduje wywołanie ServiceProcessInstaller konstruktora klasy bazowej , ComponentInstaller.
Konstruktory
ServiceProcessInstaller() |
Tworzy nowe wystąpienie klasy ServiceProcessInstaller. |
Właściwości
Account |
Pobiera lub ustawia typ konta, w ramach którego ma zostać uruchomiona ta aplikacja usługi. |
CanRaiseEvents |
Pobiera wartość wskazującą, czy składnik może zgłosić zdarzenie. (Odziedziczone po Component) |
Container |
Pobiera element IContainer zawierający element Component. (Odziedziczone po Component) |
Context |
Pobiera lub ustawia informacje o bieżącej instalacji. (Odziedziczone po Installer) |
DesignMode |
Pobiera wartość wskazującą, czy Component element jest obecnie w trybie projektowania. (Odziedziczone po Component) |
Events |
Pobiera listę programów obsługi zdarzeń dołączonych do tego Componentelementu . (Odziedziczone po Component) |
HelpText |
Pobiera tekst pomocy wyświetlany dla opcji instalacji usługi. |
Installers |
Pobiera kolekcję instalatorów, które zawiera ten instalator. (Odziedziczone po Installer) |
Parent |
Pobiera lub ustawia instalator zawierający kolekcję, do których należy ten instalator. (Odziedziczone po Installer) |
Password |
Pobiera lub ustawia hasło skojarzone z kontem użytkownika, w ramach którego działa aplikacja usługi. |
Site |
Pobiera lub ustawia wartość ISite .Component (Odziedziczone po Component) |
Username |
Pobiera lub ustawia konto użytkownika, w ramach którego zostanie uruchomiona aplikacja usługi. |
Metody
Commit(IDictionary) |
Po zastąpieniu w klasie pochodnej, kończy transakcję instalacji. (Odziedziczone po Installer) |
CopyFromComponent(IComponent) |
Implementuje metodę klasy CopyFromComponent(IComponent) bazowej bez ServiceProcessInstaller zachowania specyficznego dla klasy. |
CreateObjRef(Type) |
Tworzy obiekt zawierający wszystkie istotne informacje wymagane do wygenerowania serwera proxy używanego do komunikowania się z obiektem zdalnym. (Odziedziczone po MarshalByRefObject) |
Dispose() |
Zwalnia wszelkie zasoby używane przez element Component. (Odziedziczone po Component) |
Dispose(Boolean) |
Zwalnia zasoby niezarządzane używane przez element Component i opcjonalnie zwalnia zasoby zarządzane. (Odziedziczone po Component) |
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetLifetimeService() |
Przestarzałe.
Pobiera bieżący obiekt usługi okresu istnienia, który kontroluje zasady okresu istnienia dla tego wystąpienia. (Odziedziczone po MarshalByRefObject) |
GetService(Type) |
Zwraca obiekt, który reprezentuje usługę dostarczaną przez Component obiekt lub przez element Container. (Odziedziczone po Component) |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
InitializeLifetimeService() |
Przestarzałe.
Uzyskuje obiekt usługi okresu istnienia w celu kontrolowania zasad okresu istnienia dla tego wystąpienia. (Odziedziczone po MarshalByRefObject) |
Install(IDictionary) |
Zapisuje informacje o aplikacji usługi w rejestrze. Ta metoda ma być używana przez narzędzia instalacyjne, które automatycznie nazywają odpowiednie metody. |
IsEquivalentInstaller(ComponentInstaller) |
Określa, czy określony instalator instaluje ten sam obiekt co ten instalator. (Odziedziczone po ComponentInstaller) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
MemberwiseClone(Boolean) |
Tworzy płytkią kopię bieżącego MarshalByRefObject obiektu. (Odziedziczone po MarshalByRefObject) |
OnAfterInstall(IDictionary) |
AfterInstall Zgłasza zdarzenie. (Odziedziczone po Installer) |
OnAfterRollback(IDictionary) |
AfterRollback Zgłasza zdarzenie. (Odziedziczone po Installer) |
OnAfterUninstall(IDictionary) |
AfterUninstall Zgłasza zdarzenie. (Odziedziczone po Installer) |
OnBeforeInstall(IDictionary) |
BeforeInstall Zgłasza zdarzenie. (Odziedziczone po Installer) |
OnBeforeRollback(IDictionary) |
BeforeRollback Zgłasza zdarzenie. (Odziedziczone po Installer) |
OnBeforeUninstall(IDictionary) |
BeforeUninstall Zgłasza zdarzenie. (Odziedziczone po Installer) |
OnCommitted(IDictionary) |
Committed Zgłasza zdarzenie. (Odziedziczone po Installer) |
OnCommitting(IDictionary) |
Committing Zgłasza zdarzenie. (Odziedziczone po Installer) |
Rollback(IDictionary) |
Wycofywanie informacji o aplikacji usługi zapisanych w rejestrze przez procedurę instalacji. Ta metoda ma być używana przez narzędzia instalacyjne, które automatycznie przetwarzają odpowiednie metody. |
ToString() |
Zwraca wartość String zawierającą nazwę Componentobiektu , jeśli istnieje. Ta metoda nie powinna być zastępowana. (Odziedziczone po Component) |
Uninstall(IDictionary) |
Po przesłonięciu w klasie pochodnej program usuwa instalację. (Odziedziczone po Installer) |
Zdarzenia
AfterInstall |
Występuje po uruchomieniu Install(IDictionary) metod wszystkich instalatorów we Installers właściwości . (Odziedziczone po Installer) |
AfterRollback |
Występuje po wycofaniu instalacji wszystkich instalatorów we Installers właściwości. (Odziedziczone po Installer) |
AfterUninstall |
Występuje po wykonaniu Installers operacji dezinstalacji przez wszystkich instalatorów we właściwości. (Odziedziczone po Installer) |
BeforeInstall |
Występuje przed uruchomieniem Install(IDictionary) metody każdego instalatora w kolekcji instalatora. (Odziedziczone po Installer) |
BeforeRollback |
Występuje przed wycofaniem instalatorów we Installers właściwości. (Odziedziczone po Installer) |
BeforeUninstall |
Występuje przed wykonaniem operacji dezinstalacji przez instalatorów we Installers właściwości. (Odziedziczone po Installer) |
Committed |
Występuje po zatwierdzeniu instalacji przez wszystkich instalatorów we Installers właściwości. (Odziedziczone po Installer) |
Committing |
Występuje przed zatwierdzeniem instalacji przez instalatorów we Installers właściwości. (Odziedziczone po Installer) |
Disposed |
Występuje, gdy składnik jest usuwany przez wywołanie Dispose() metody . (Odziedziczone po Component) |