MSI Installer завершается ошибкой во время удаления, когда serivce уже был удален - PullRequest
1 голос
/ 10 февраля 2011

У меня есть установщик с некоторыми пользовательскими действиями и дизайнером, желающим установить службу Windows.

Время от времени, когда я совершал ошибку в своих пользовательских действиях (или в конфигурации MSI),Процесс обновления может завершиться ошибкой.Решение состоит в том, чтобы удалить Приложение и выполнить новую установку.

Но иногда я заканчиваю ситуацию, когда не могу удалить Приложение, потому что «пользовательские действия» для службы утверждают, что службане зарегистрирован в системе.ОК, может быть, нет проблем.Я удаляю приложение.Проблема: мое приложение не удаляется.Это остается.Я должен вручную добавить службу в реестр и перезапустить процесс удаления.

Вопрос: Что мне нужно настроить / разработать / запрограммировать / и т.д.сообщить установщику (не) службы о сбое во время удаления, когда служба уже удалена.

КСТАТИ: Мои пользовательские действия выполняют НИЧЕГО во время удаления.Только во время установки / обновления я запрашиваю у пользователя некоторую конфигурацию и выполняю некоторые пользовательские настройки - только связанные с моим приложением.Не относится к сервису.

РЕДАКТИРОВАТЬ: забыл упомянуть: VS 2008, проект установки по умолчанию, ничего особенного, целевой машиной является Windows XP

1 Ответ

2 голосов
/ 10 февраля 2011

Да, это одна из многих причин, по которым я говорю не использовать пользовательские действия VDPROJ и InstallUtil.Вам нужно вставить блок try catch в настраиваемое действие удаления и обработать этот сценарий.

Надеюсь, вы тестируете на виртуальной машине и можете просто вернуться, но в случае, если это ваш блок разработки, используйте команду Windows SC для воссозданияслужба, чтобы вы могли заставить деинсталляцию работать сейчас.

Если вы действительно хотите сделать это правильно, вы хотите сделать что-то вроде этого:

Дополнение InstallShield с помощью установщика WindowsXML - службы Windows

Та же концепция применима, вы просто добавите модуль слияния WiX в установщик VDPROJ.

...