Как установить службу Windows программно без использования installutil.exe?
Спасибо
Как установить службу Windows программно без использования installutil.exe?
Спасибо
Вы можете установить службу, добавив этот код (в файл программы, Program.cs), чтобы установить себя при запуске из командной строки с использованием указанных параметров:
/// <summary>
/// The main entry point for the application.
/// </summary>
static void Main(string[] args)
{
if (System.Environment.UserInteractive)
{
if (args.Length > 0)
{
switch (args[0])
{
case "-install":
{
ManagedInstallerClass.InstallHelper(new string[] { Assembly.GetExecutingAssembly().Location });
break;
}
case "-uninstall":
{
ManagedInstallerClass.InstallHelper(new string[] { "/u", Assembly.GetExecutingAssembly().Location });
break;
}
}
}
}
else
{
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[] { new MyService() };
ServiceBase.Run(ServicesToRun);
}
}
Я использую этот метод из следующей статьи CodeProject, и он отлично работает.
Я устанавливаю и удаляю свою службу Windows через командную строку, например, MyWindowsService.exe -install
и MyWindowsService.exe -uninstall
, чтобы избежать использования installutil.exe
. Я написал набор инструкций о том, как это сделать здесь.