У меня есть существующая (на C #) служба Windows, которая является производной от класса установщика , и в настоящее время я использую предоставленную MS командную строку InstallUtil для ее установки и удаления. Это работает нормально, и как часть моей системы я подключил обработчики событий к событиям AfterUninstallEventHandler и CommittedEventHandler. В моем случае я просто использую их для записи сообщений в специальный журнал событий с указанием даты и времени установки и удаления, а также версий программы.
В настоящее время я экспериментирую с Wix v3.5 Beta 1 , чтобы упаковать кучу своих вещей, включая эту службу, и я использую Wix ServiceInstall и ServiceControl, чтобы заменить то, что я сделал вручную с InstallUtil .
Однако, похоже, что Wix использует совершенно иной механизм InstallUtil для установки служб. Это видно из названия и описания службы, управляемой Wix (в отличие от того, что было встроено в программу службы), и что мои события больше не запускаются (что, если используется другой механизм установки, я сомневаюсь, что они будут ).
Так может ли Wix выполнить установку службы так же, как InstallUtil, или я просто собираюсь мириться с различиями?
Редактировать
Кристофер предложил выделить из моего кода определения, относящиеся к сервисам, и перенести их в проект установщика Wix. Это делает меня неловким, так как теперь мне нужно либо найти способ обмена информацией между двумя отдельными системами (что я не знаю, как делиться между кодом и проектами Wix), либо смириться с определением информации в двух разных местах (очень плохо практика программирования).