| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 | using System.Collections;using System.ComponentModel;using System.ServiceProcess;namespace MediaBrowser.ServerApplication{    [RunInstaller(true)]    public class BackgroundServiceInstaller : System.Configuration.Install.Installer    {        public BackgroundServiceInstaller()        {            var process = new ServiceProcessInstaller            {                Account = ServiceAccount.LocalSystem            };            var serviceAdmin = new ServiceInstaller            {                StartType = ServiceStartMode.Manual,                ServiceName = BackgroundService.Name,                DisplayName = BackgroundService.DisplayName,                DelayedAutoStart = true,                Description = "The windows background service for Media Browser Server.",                // Will ensure the network is available                ServicesDependedOn = new[] { "LanmanServer", "Tcpip" }            };            // Microsoft didn't add the ability to add a            // description for the services we are going to install            // To work around this we'll have to add the            // information directly to the registry but I'll leave            // this exercise for later.            // now just add the installers that we created to our            // parents container, the documentation            // states that there is not any order that you need to            // worry about here but I'll still            // go ahead and add them in the order that makes sense.            Installers.Add(process);            Installers.Add(serviceAdmin);        }        protected override void OnBeforeInstall(IDictionary savedState)        {            Context.Parameters["assemblypath"] = "\"" +                Context.Parameters["assemblypath"] + "\" " + GetStartArgs();            base.OnBeforeInstall(savedState);        }        protected override void OnBeforeUninstall(IDictionary savedState)        {            Context.Parameters["assemblypath"] = "\"" +                Context.Parameters["assemblypath"] + "\" " + GetStartArgs();            base.OnBeforeUninstall(savedState);        }        private string GetStartArgs()        {            return "-service";        }    }}
 |