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 Emby 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";
- }
- }
- }
|