61 lines
2.1 KiB
C#
61 lines
2.1 KiB
C#
|
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."
|
|||
|
};
|
|||
|
|
|||
|
// 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";
|
|||
|
}
|
|||
|
}
|
|||
|
}
|