Не удаляется служба без InstallContext
Есть код который удаляет службу:
using (var serviceInstaller = new ServiceInstaller())
{
var Context = new InstallContext("log.log", null); // Создаёт .log файл и записывает туда данные по удалению службы
serviceInstaller.Context = Context; // Записываем данные из контекста
serviceInstaller.ServiceName = service; // Имя службы
serviceInstaller.Uninstall(null); // Удаляем службу
}
Вот такой лог получаю:
Выполняется удаление источника EventLog Http_analyzer_v7_netfilter. Предупреждение. Источник Http_analyzer_v7_netfilter не зарегистрирован на локальном компьютере. Выполняется удаление службы Http_analyzer_v7_netfilter из системы... Служба Http_analyzer_v7_netfilter успешно удалена из системы.
Вопрос:
Почему служба не удаляется без инициализатора InstallContext ?
Если сделаю просто так:
using (var serviceInstaller = new ServiceInstaller())
{
serviceInstaller.ServiceName = service; // Имя службы
serviceInstaller.Uninstall(null); // Удаляем службу
}
То так не удаляется, можно ли сделать так чтобы без инициализатора спокойно удалилось, или же с инициализатором InstallContext но без записи данных. ( он всё выводит в консоль ещё )
Ответы (1 шт):
В принципе проблему решил данным способом:
var Context = new InstallContext(); // Инициализируем контекст
Context.Parameters.Add("LogToConsole", "False"); // Передаём параметр не показывать в консоли
serviceInstaller.Context = Context;
То так всё работает нормально, но если у вас есть более интересный способ решения, буду благодарен если поделитесь.