2010-10-01 12 views
31

Non ho la differenza tra System.ServiceProcess.ServiceProcessInstaller e System.ServiceProcess.ServiceInstaller. Dai metadati: il primo installa un eseguibile e il secondo una classe. Dopo aver letto l'esempio di MSDN in cui è presente un ServiceProcessInstaller e due ServiceInstaller con diversi ServiceName, sono stato completamente perso.Differenza tra ServiceProcessInstaller e ServiceInstaller

C'è una spiegazione chiara?

risposta

42

È possibile che un eseguibile contenga effettivamente più servizi. In tal caso, si avrà un ServiceInstaller che rappresenta ciascun servizio, ma un singolo ServiceProcessInstaller, che rappresenta l'eseguibile.

Ogni servizio è implementato (in .NET) come una classe diversa. Ma i servizi multipli (se sono tutti avviati) condividono un AppDomain (credo). Probabilmente è abbastanza raro che tu abbia bisogno di una tale configurazione e, nella maggior parte dei casi, esiste una mappatura 1-1 tra eseguibili e servizi (quindi nel solo eseguibile sarebbe necessario un solo ServiceInstaller e ServiceProcessInstaller).