Как я устанавливаю службу 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);
}
}
Вам может применить некоторые статистические методы здесь, чтобы утюгнуть дисперсию. Попробуйте запускать один и тот же кусок кода 1000 раз, а затем принять среднее время и сравнить это. Симуляции обычно используют некоторые методы для «убирать» числа, и это один из них.
-121--1188773-Я использую метод из следующей статьи CodeProject, и он отлично работает.
Я устанавливаю и удалил мою службу Windows через командную строку, например, mywindowsservice.exe -install
и mywindowsservice.exe -uninstall
, чтобы избежать использования instatherutil.exe
. Я написал набор инструкций о том, как это сделать здесь .