Как я могу откатить или отменить проект MSI в C #? - PullRequest
1 голос
/ 30 декабря 2010

Я пытаюсь построить проект MSI, и во время установки я устанавливаю службу Windows. Если эта служба не может быть установлена, я хочу выполнить откат и отменить установку.

Я уже создал класс установщика и переопределил метод установки и удаления. Как я могу инициировать откат?

1 Ответ

1 голос
/ 11 января 2011

Во-первых, вы должны знать, что использование пользовательских действий InstallUtil (независимо от того, насколько они задокументированы и описаны) не являются хорошим выбором.Выкинь их.То же самое относится и к проекту развертывания Visual Studio, который вы используете для выполнения своего настраиваемого действия.

Лучшее решение заключается в использовании встроенной поддержки установщика Windows для создания и запуска служб.Используйте InstallShield 2010 Limited Edition (бесплатно) или установщик Windows XML (FOSS).Эти инструменты предоставляют таблицу ServiceControl, в которой есть столбец «Ожидание», который позволяет обучать MSI:

Ожидание
Если оставить это поле пустым или ввести значение 1, программа установки станет причинойподождать максимум 30 секунд для завершения услуги, прежде чем продолжить.Ожидание может использоваться, чтобы дать дополнительное время для критического события, чтобы возвратить ошибку ошибки.Значение 0 в этом поле означает ожидание только до тех пор, пока диспетчер управления службами (SCM) не сообщит, что эта служба находится в состоянии ожидания, прежде чем продолжить установку.

Таблица ServiceControl

...