Очень верхоуровневая абстракция поверх ServiceController
для Windows.
Библиотека позволяет управлять службами в ОС Windows.
В методах установки, удаления и установки описания дергает sc.exe.
Библиотека на данный момент реализует интерфейс IOSServiceHelper
и его имплементацию для ОС Windows WindowsServiceHelper
.
Базовый интерфейс для ServiceHelper
.
Содержит в себе несколько методов:
string ServiceName { get; }
- имя службы.bool IsServiceExists();
- проверка что служба установлена.bool IsServiceRunning();
- проверка что служба запущена.bool IsServiceStoped();
- проверка что служба остановлена.void StartService(string[]? args = null, WaitForStatusModel waitFor = default);
- запуск службы.void StopService(bool stopDependetServices = false, WaitForStatusModel waitFor = default);
- остановка службы.
Дополняет IOSServiceHelper
.
Содержит в себе методы для работы со службами Windows:
bool DeleteService(TimeSpan waitForExit);
- удаление службы !!!СТАРАЯ РЕАЛИЗАЦИЯ!!!.string? DeleteServiceWithOutput(TimeSpan waitForExit);
- удаление службы.string? SetDescriptionForService(string description, WaitForStatusModel waitFor = default);
- установка описания для службы.ServiceControllerStatus? GetServiceStatus();
- получение статуса службы.bool RecreateService();
- пересоздание инстансаServiceController
.void InstallService(string path, InstallServiceStartMode startMode, WaitForStatusModel model = default);
- установка службы.void PauseService(WaitForStatusModel waitFor = default);
- постановка службы на паузу.
Класс, наследуемый от интерфейса IWindowsServiceHelper
, для работы со службами WINDOWS.
Логирование внутри осуществляется на уровне Debug && Trace.
GitHub - EBCEYS.DayOfAllLoversService
- Исправлено логирование.
- В
IOSServiceHelper
иWindowsServiceHelper
соответственно добавлен новый методstring? DeleteServiceWithOutput(TimeSpan waitForExit);()
. - В
IOSServiceHelper
иWindowsServiceHelper
соответственно методbool DeleteService(TimeSpan waitForExit);
помечен как Obsolete.
- Изменен таргет фреймворк с .net8-windows на .net8.
- Исправлена ошибка, когда при значении параметра waitFor по умолчанию у метода
public void InstallService(string path, InstallServiceStartMode startMode = default, WaitForStatusModel waitFor = default)
всегда выкидывалось исключение. - Параметр
logger
в конструктореWindowsServiceHelper
сделан nullable.