Установка программного обеспечения Windows программно
Как установить службу Windows программно без использования installutil.exe?
Спасибо
Ответ 1
Вы можете установить службу, добавив этот код (в файл программы, 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);
}
}
Ответ 2
Я использую этот метод из следующей статьи CodeProject, и он отлично работает.
Я устанавливаю и удаляю свою службу Windows через командную строку, например, MyWindowsService.exe -install и MyWindowsService.exe -uninstall, чтобы избежать использования installutil.exe. Я написал набор инструкций о том, как это сделать здесь.