Сначала убедитесь, что вы выполнили все узлы установщика службы настраиваемых действий, в частности, заполнили настраиваемые действия узла фиксации и отката.Все эти пользовательские действия работают вместе, поэтому, если вы пропустили одно из них, это может вызвать проблему.Теоретически при отмене удаления следует отметить, что служба больше не устанавливается, и ее следует переустановить.
Если это не проблема, то это, вероятно, ошибка.Самое полезное, что вы можете сделать, чтобы исправить это, - переопределить base.Uninstall () в классе установщика и добавить некоторый код, чтобы проверить, действительно ли служба установлена перед вызовом base.Uninstall ().
Проекты установки Visual Studio - единственные, которые используют код для установки служб, и они представляют собой настраиваемые действия для вызова методов класса установщика.Все остальные используют таблицы ServiceInstall и ServiceControl, предоставляемые установщиком Windows.
Некоторые параметры, которые можно использовать, если вы не хотите полностью переключаться на другой инструмент, например WiX:
- Таблицы ServiceControl и ServiceInstall не слишком сложны, еслиВы знаете что-то об услугах.Если вы прокрутите отсюда вниз до абзаца о Visual Studio и установке сервисов, вам поможет статья и программа:
http://www.installsite.org/pages/en/msi/tips.htm
Вы можете погрузиться в WiX достаточно, чтобы создать модуль слияния, который установит службы вместе с любыми необходимыми действиями запуска / остановки.Затем объедините этот модуль слияния с вашей установкой Visual Studio.Никаких настраиваемых действий не требуется (а установочные классы - это настраиваемые действия, поэтому они вам не нужны).