Отлаживаю сетап для сервиса. Вот какая незадача: после деинсталляции сервис становится "Помеченным для удаления", посему повторная инсталляция завершается неудачей.
Как мне пристукнуть удаленный сервис намертво? Может, реестр почистить или какой контролирующий процесс прибить?
19.09.06 11:47: Перенесено модератором из '.NET' — Odi$$ey
Здравствуйте, Аноним, Вы писали:
А>Отлаживаю сетап для сервиса. Вот какая незадача: после деинсталляции сервис становится "Помеченным для удаления", посему повторная инсталляция завершается неудачей. А>Как мне пристукнуть удаленный сервис намертво? Может, реестр почистить или какой контролирующий процесс прибить?
У тебя с инсталлером что то не в порядке.
Я сейчас тем же самым занимаюсь. После нормальной деинсталяции сервис удаляется полностью. Можно делать инстал — деинстал сколько угодно раз.
Чтоб выкосить сервис почисть в реестре
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
ключи с именем твоего сервиса и перегрузи комп.
Здравствуйте, Аноним, Вы писали:
А>Отлаживаю сетап для сервиса. Вот какая незадача: после деинсталляции сервис становится "Помеченным для удаления", посему повторная инсталляция завершается неудачей. А>Как мне пристукнуть удаленный сервис намертво? Может, реестр почистить или какой контролирующий процесс прибить?
На w2k надо перегрузиться. На win2003 server перезагрузка не нужна, все нормально удаляется.
Re[2]: Installer для сервиса
От:
Аноним
Дата:
30.08.06 07:50
Оценка:
Здравствуйте, stump, Вы писали:
S>Здравствуйте, Аноним, Вы писали:
А>>Отлаживаю сетап для сервиса. Вот какая незадача: после деинсталляции сервис становится "Помеченным для удаления", посему повторная инсталляция завершается неудачей. А>>Как мне пристукнуть удаленный сервис намертво? Может, реестр почистить или какой контролирующий процесс прибить?
S>У тебя с инсталлером что то не в порядке.
Должен тебя огорчить: не в порядке что-то у тебя. Т.к. если сервис удалять через менеджер сервисов, то он действительно помечается как "для удаления" и будет удалён после перезагрузки. Твой же SETUP скорее всего просто "руками" чистит реестр, поэтому при повторной установке менеджер не находит сервис. Или возможно, твой сервис находится в остановленом состоянии, поэтому менеджер удаляет его полностью, ибо рабочие сервисы менеджер не удалит никогда.
S>Я сейчас тем же самым занимаюсь. После нормальной деинсталяции сервис удаляется полностью. Можно делать инстал — деинстал сколько угодно раз. S>Чтоб выкосить сервис почисть в реестре S>HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services S>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services S>ключи с именем твоего сервиса и перегрузи комп.
Мне кажется, что товарищ имел ввиду установку/удаление сколь угодно много раз *до* перезагрузки.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, stump, Вы писали:
S>>Здравствуйте, Аноним, Вы писали:
А>>>Отлаживаю сетап для сервиса. Вот какая незадача: после деинсталляции сервис становится "Помеченным для удаления", посему повторная инсталляция завершается неудачей. А>>>Как мне пристукнуть удаленный сервис намертво? Может, реестр почистить или какой контролирующий процесс прибить?
S>>У тебя с инсталлером что то не в порядке.
А>Должен тебя огорчить: не в порядке что-то у тебя. Т.к. если сервис удалять через менеджер сервисов, то он действительно помечается как "для удаления" и будет удалён после перезагрузки. Твой же SETUP скорее всего просто "руками" чистит реестр, поэтому при повторной установке менеджер не находит сервис. Или возможно, твой сервис находится в остановленом состоянии, поэтому менеджер удаляет его полностью, ибо рабочие сервисы менеджер не удалит никогда.
Уважаемый Аноним. У меня все в порядке, как раз. Сервис инсталится и удаляется стандартным инсталлером, который включен в setup проект через custom actions. При этом после uninstall-а сервис удаляется без проблем без перезагрузки.
Мои же рекомендации по чистке реестра касались ситуации, когда процесс инсталляции или деинсталяции свалился из-за ошибки. В этом случае сервис остается висеть в списке сервисов, но не запустить ни удалить ни проинсталлить заново стандартными средствами его не удается.
Такая ситуация у меня была например, когда я забыл повесить custom action на uninstall.
Здравствуйте, <Аноним>, Вы писали:
А>Должен тебя огорчить: не в порядке что-то у тебя.
Скорее, всего не WinXP. В WinXP не требется перезагрузка. И только в редких случаях, когда останов службы случается с ошибкой, что отображается как очень долгая попытка менеджера застопорить службу, может потребоваться перезагрузка, а служба будет выглядеть запрещённой (disabled), и сделать с ней будет "ничего нельзя". Такие службы обычно имеют зависимости.
Так работает InstallUtil, например. Без перезагрузок.
Здравствуйте, Аноним, Вы писали:
А>Отлаживаю сетап для сервиса. Вот какая незадача: после деинсталляции сервис становится "Помеченным для удаления", посему повторная инсталляция завершается неудачей. А>Как мне пристукнуть удаленный сервис намертво? Может, реестр почистить или какой контролирующий процесс прибить?
Встречался с этой ошибкой. Оказалось, что сервис может "лочится" двумя вещами: regedit-ом и окном со списком сервисов. Если их закрыть, то сервис будет удален.