Ответ 1
Вам нужно использовать InstallUtil? Вот команды, которые нужно делать с помощью sc:
sc create MyService binPath= "MyService.exe" DisplayName= "MyService"
sc description MyService "My description"
У меня есть исполняемый файл службы Windows, который, как мне известно, написан на .NET, который мне нужно установить под другим именем службы, чтобы избежать конфликта. В любом случае установка не укажет имя службы. Если у меня есть только доступ к двоичному файлу, есть ли способ переопределить имя службы, когда я устанавливаю его с помощью installutil?
Вам нужно использовать InstallUtil? Вот команды, которые нужно делать с помощью sc:
sc create MyService binPath= "MyService.exe" DisplayName= "MyService"
sc description MyService "My description"
Неверно, что InstallUtil не позволяет вам настроить имя службы. Я делаю это все время, как это
InstallUtil.exe /servicename="<service name>" "<path to service exe>"
Добавить метод для получения имени CustomService
private void RetrieveServiceName()
{
var serviceName = Context.Parameters["servicename"];
if (!string.IsNullOrEmpty(serviceName))
{
this.SomeService.ServiceName = serviceName;
this.SomeService.DisplayName = serviceName;
}
}
вызывать установку и удаление
public override void Install(System.Collections.IDictionary stateSaver)
{
RetrieveServiceName();
base.Install(stateSaver);
}
public override void Uninstall(System.Collections.IDictionary savedState)
{
RetrieveServiceName();
base.Uninstall(savedState);
}
installutil /servicename="My Service [SysTest]" d:\pathToMyService\Service.exe
Это сработало для меня!
Я надеюсь, что кто-то сможет это использовать.
Попробуйте установить службу с помощью sc.exe. Быстрый поиск даст много документации. С помощью этого инструмента легко изменить существующие службы и/или добавить новые, включая имена.
Изменить: я устанавливаю свои сервисы .NET с помощью этого инструмента.