.NET ServiceInstaller получает слишком много времени для удаления служб - PullRequest
0 голосов
/ 17 апреля 2010

у нас есть проект установки, написанный в Visual Studio 2008 на C #, который устанавливает и удаляет службы с помощью класса ServiceInstaller.
Когда я устанавливаю службы, это не занимает слишком много времени, но когда я удаляю со следующим кодом, процесс для каждой службы получает несколько секунд (а у нас много служб):

ServiceInstaller si = new ServiceInstaler();
string path = string.Format("/assemblypath={0}", strServiceExecutablePath);
string[] cmdline = { path };

InstallContext context = new InstallContext(string.Empty, cmdline);
si.Context = context;
si.ServiceName = strServiceName;
si.Uninstall(null);

Кто-то знает почему?

Здесь я хочу задать несколько связанных вопросов.
Какая разница между работами:

InstallUtill /u exePath

при удалении службы и:

sc delete serviceName

И почему при удалении какой-либо записи из реестра из CurrentControlSet \ services я все еще вижу службу в services.msc, но с:

<Failed to read description. Error code:2

В описании?
Откуда мне нужно вручную удалить сервис, чтобы удалить его полностью?
Спасибо за продвижение.

1 Ответ

0 голосов
/ 17 апреля 2010

InstallUtil /u exePath удалит приложение, вызвав часть деинсталлятора вашей установки.

sc delete serviceName удалит подраздел службы из реестра.Это не удаляет приложение - но может быть частью процедуры удаления.

Относительно вашей ошибки Failed to read description. Error code:2 см. Эту запись .Скорее всего, вы только нанесли вред своему сервису, но не удалили его.Запустите sfc /scannow и проверьте журнал.

...