ServiceProcessInstaller Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
öğesini genişleten ServiceBasesınıfları içeren bir yürütülebilir dosya yükler. Bu sınıf, bir hizmet uygulaması yüklenirken InstallUtil.exe gibi yükleme yardımcı programları tarafından çağrılır.
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
- Devralma
Örnekler
Aşağıdaki örnek, 'den Installerdevralan MyProjectInstaller adlı bir proje yükleyicisi oluşturur. "Hello-World Service 1" ve "Hello-World Service 2" olmak üzere iki hizmet içeren bir hizmet yürütülebilir dosyası olduğu varsayılır. MyProjectInstaller oluşturucusunun içinde (yükleme yardımcı programı tarafından çağrılır), ServiceInstaller her hizmet için nesneler oluşturulur ve yürütülebilir dosya için bir ServiceProcessInstaller oluşturulur. Yükleme yardımcı programının MyProjectInstaller'ı geçerli bir yükleyici olarak tanıması RunInstallerAttribute için özniteliği olarak true
ayarlanır.
İsteğe bağlı özellikler, yükleyiciler koleksiyona eklenmeden Installers önce işlem yükleyicisinde ve hizmet yükleyicilerinde ayarlanır. Yükleme yardımcı programı MyProjectInstaller'a eriştiğinde, çağrısı InstallerCollection.Add aracılığıyla koleksiyona Installers eklenen nesneler sırayla yüklenir. İşlem sırasında yükleyici, hangi nesnelerin yüklendiğini belirten durum bilgilerini tutar, böylece yükleme hatası durumunda her nesne sırayla geri yüklenebilir.
Normalde, proje yükleyici sınıfınızı açıkça örneklemezsiniz. Bunu oluşturup eklersiniz RunInstallerAttribute, ancak yükleme yardımcı programı aslında öğesini çağırır ve bu nedenle sınıfını başlatır.
#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
Açıklamalar
yürütülebilir ServiceProcessInstaller dosyadaki tüm hizmetler için ortak çalışır. Yükleme yardımcı programı tarafından yüklemek istediğiniz hizmetlerle ilişkili kayıt defteri değerlerini yazmak için kullanılır.
Bir hizmeti yüklemek için, öğesinden Installerdevralan bir proje yükleyici sınıfı oluşturun ve sınıfında öğesini olarak true
ayarlayınRunInstallerAttribute. Projenizde hizmet uygulaması başına bir ServiceProcessInstaller örnek ve uygulamadaki her hizmet için bir ServiceInstaller örnek oluşturun. Son olarak, örneği ve ServiceInstaller örnekleri proje yükleyici sınıfınıza ekleyinServiceProcessInstaller.
InstallUtil.exe çalıştırıldığında, yardımcı programı olarak ayarlanmış true
hizmet derlemesindeki RunInstallerAttribute sınıfları arar. Sınıfları proje yükleyicinizle ilişkili koleksiyona ekleyerek hizmet derlemesine Installers ekleyin. ise RunInstallerAttributefalse
, yükleme yardımcı programı proje yükleyicisini yoksayar.
bir örneği ServiceProcessInstalleriçin değiştirebileceğiniz özellikler arasında, bir hizmet uygulamasının oturum açmış kullanıcı dışında bir hesap altında çalıştırılacağını belirtme yer alır. Hizmetin altında çalışması gereken belirli Username bir ve Password çifti belirtebilir veya hizmetin bilgisayarın Sistem hesabı, yerel veya ağ hizmet hesabı ya da kullanıcı hesabı altında çalıştırılacağını belirtmek için kullanabilirsiniz Account .
Not
Bilgisayarın Sistem hesabı, Yönetici hesabıyla aynı değildir.
Normalde, kodunuzun içinde üzerinde ServiceInstaller yöntemlerini çağırmazsınız; bunlar genellikle yalnızca yükleme yardımcı programı tarafından çağrılır. Yükleme yardımcı programı, yükleme işlemi sırasında ve ServiceInstaller.Install yöntemlerini otomatik olarak çağırırServiceProcessInstaller.Install. Gerekirse, önceden yüklenmiş tüm bileşenlerde (veya ServiceInstaller.Rollback) çağrısı Rollback yaparak hataları geri alır.
Uygulamanın yükleme yordamı, proje yükleyicisinin Installer.Contextöğesini kullanarak zaten yüklü olan bileşenler hakkındaki bilgileri otomatik olarak korur. Örnek olarak ServiceProcessInstaller bu durum bilgileri sürekli olarak güncelleştirilir ve her ServiceInstaller örnek yardımcı program tarafından yüklenir. Kodunuzun bu durum bilgilerini açıkça değiştirmesi genellikle gereksizdir.
Örneği oluşturmak ServiceProcessInstaller temel sınıf oluşturucusunun çağrılmalarına ComponentInstallerneden olur.
Oluşturucular
ServiceProcessInstaller() |
ServiceProcessInstaller sınıfının yeni bir örneğini oluşturur. |
Özellikler
Account |
Bu hizmet uygulamasının altında çalıştırılacak hesap türünü alır veya ayarlar. |
CanRaiseEvents |
Bileşenin bir olay oluşturup oluşturamayacağını belirten bir değer alır. (Devralındığı yer: Component) |
Container |
öğesini IContainer içeren öğesini Componentalır. (Devralındığı yer: Component) |
Context |
Geçerli yüklemeyle ilgili bilgileri alır veya ayarlar. (Devralındığı yer: Installer) |
DesignMode |
öğesinin şu anda tasarım modunda olup olmadığını Component gösteren bir değer alır. (Devralındığı yer: Component) |
Events |
Bu Componentöğesine eklenen olay işleyicilerinin listesini alır. (Devralındığı yer: Component) |
HelpText |
Hizmet yükleme seçenekleri için görüntülenen yardım metnini alır. |
Installers |
Bu yükleyicinin içerdiği yükleyici koleksiyonunu alır. (Devralındığı yer: Installer) |
Parent |
Bu yükleyicinin ait olduğu koleksiyonu içeren yükleyiciyi alır veya ayarlar. (Devralındığı yer: Installer) |
Password |
Hizmet uygulamasının altında çalıştığı kullanıcı hesabıyla ilişkili parolayı alır veya ayarlar. |
Site |
öğesini alır veya ayarlar ISiteComponent. (Devralındığı yer: Component) |
Username |
Hizmet uygulamasının altında çalıştırılacağı kullanıcı hesabını alır veya ayarlar. |
Yöntemler
Commit(IDictionary) |
Türetilmiş bir sınıfta geçersiz kılındığında yükleme işlemini tamamlar. (Devralındığı yer: Installer) |
CopyFromComponent(IComponent) |
Sınıfa özgü davranış olmadan ServiceProcessInstaller temel sınıf CopyFromComponent(IComponent) yöntemini uygular. |
CreateObjRef(Type) |
Uzak bir nesneyle iletişim kurmak için kullanılan bir ara sunucu oluşturmak için gereken tüm ilgili bilgileri içeren bir nesne oluşturur. (Devralındığı yer: MarshalByRefObject) |
Dispose() |
Component tarafından kullanılan tüm kaynakları serbest bırakır. (Devralındığı yer: Component) |
Dispose(Boolean) |
Component tarafından kullanılan yönetilmeyen kaynakları serbest bırakır ve yönetilen kaynakları isteğe bağlı olarak serbest bırakır. (Devralındığı yer: Component) |
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
GetLifetimeService() |
Geçersiz.
Bu örnek için yaşam süresi ilkesini denetleen geçerli yaşam süresi hizmet nesnesini alır. (Devralındığı yer: MarshalByRefObject) |
GetService(Type) |
veya tarafından ComponentContainersağlanan bir hizmeti temsil eden bir nesnesi döndürür. (Devralındığı yer: Component) |
GetType() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
InitializeLifetimeService() |
Geçersiz.
Bu örneğin yaşam süresi ilkesini denetlemek için bir yaşam süresi hizmet nesnesi alır. (Devralındığı yer: MarshalByRefObject) |
Install(IDictionary) |
Hizmet uygulaması bilgilerini kayıt defterine yazar. Bu yöntemin, uygun yöntemleri otomatik olarak çağıran yükleme araçları tarafından kullanılması amaçlanır. |
IsEquivalentInstaller(ComponentInstaller) |
Belirtilen yükleyicinin bu yükleyiciyle aynı nesneyi yükleyip yüklemediğini belirler. (Devralındığı yer: ComponentInstaller) |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
MemberwiseClone(Boolean) |
Geçerli MarshalByRefObject nesnenin sığ bir kopyasını oluşturur. (Devralındığı yer: MarshalByRefObject) |
OnAfterInstall(IDictionary) |
Olayı tetikler AfterInstall . (Devralındığı yer: Installer) |
OnAfterRollback(IDictionary) |
Olayı tetikler AfterRollback . (Devralındığı yer: Installer) |
OnAfterUninstall(IDictionary) |
Olayı tetikler AfterUninstall . (Devralındığı yer: Installer) |
OnBeforeInstall(IDictionary) |
Olayı tetikler BeforeInstall . (Devralındığı yer: Installer) |
OnBeforeRollback(IDictionary) |
Olayı tetikler BeforeRollback . (Devralındığı yer: Installer) |
OnBeforeUninstall(IDictionary) |
Olayı tetikler BeforeUninstall . (Devralındığı yer: Installer) |
OnCommitted(IDictionary) |
Olayı tetikler Committed . (Devralındığı yer: Installer) |
OnCommitting(IDictionary) |
Olayı tetikler Committing . (Devralındığı yer: Installer) |
Rollback(IDictionary) |
Yükleme yordamı tarafından kayıt defterine yazılan hizmet uygulaması bilgilerini geri alır. Bu yöntemin, uygun yöntemleri otomatik olarak işleyen yükleme araçları tarafından kullanılması amaçlanır. |
ToString() |
Varsa, adını Componentiçeren bir String döndürür. Bu yöntem geçersiz kılınmamalıdır. (Devralındığı yer: Component) |
Uninstall(IDictionary) |
Türetilmiş bir sınıfta geçersiz kılındığında, bir yüklemeyi kaldırır. (Devralındığı yer: Installer) |
Ekinlikler
AfterInstall |
özelliğindeki Install(IDictionary) tüm yükleyicilerin Installers yöntemleri çalıştırıldıktan sonra gerçekleşir. (Devralındığı yer: Installer) |
AfterRollback |
özelliğindeki tüm yükleyicilerin yüklemeleri Installers geri yüklendikten sonra gerçekleşir. (Devralındığı yer: Installer) |
AfterUninstall |
özelliğindeki Installers tüm yükleyiciler kaldırma işlemlerini gerçekleştirdikten sonra gerçekleşir. (Devralındığı yer: Installer) |
BeforeInstall |
Yükleyici koleksiyonundaki Install(IDictionary) her yükleyicinin yöntemi çalışmadan önce gerçekleşir. (Devralındığı yer: Installer) |
BeforeRollback |
özelliğindeki Installers yükleyiciler geri alınmadan önce gerçekleşir. (Devralındığı yer: Installer) |
BeforeUninstall |
özelliğindeki Installers yükleyiciler kaldırma işlemlerini gerçekleştirmeden önce gerçekleşir. (Devralındığı yer: Installer) |
Committed |
özelliğindeki Installers tüm yükleyiciler yüklemelerini işledikten sonra gerçekleşir. (Devralındığı yer: Installer) |
Committing |
özelliğindeki Installers yükleyiciler yüklemelerini işlemeden önce gerçekleşir. (Devralındığı yer: Installer) |
Disposed |
Bileşen yöntemine Dispose() yapılan bir çağrı tarafından atıldığında gerçekleşir. (Devralındığı yer: Component) |