Перезапуск службы Windows во время обновления WIX - PullRequest
0 голосов
/ 09 июня 2018

У нас есть служба Windows, установленная как часть нашего установщика msi WIX.Во время обновления мы пытаемся просто перезапустить службу вместо полной переустановки, чтобы надежно защитить кредиты пользователей службы.

Многие сообщения обсуждались по этому поводу, но ничего не окончательно.

Попытка отключенияУдалите службы во время обновления, выполнив следующие действия:

<InstallExecuteSequence>
   <DeleteServices>NOT UPGRADINGPRODUCTCODE</DeleteServices>
</InstallExecuteSequence>

Примечание. Приведенный выше код также присутствует в старом MSI

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

<InstallServices>NOT WIX_UPGRADE_DETECTED</InstallServices>

Но служба находится в остановленном состоянии, и установщик не работает, ExecServiceConfig с кодом 1603, так как служба не находится в рабочем состоянии.

Любые указатели на этомбудет полезно

1 Ответ

0 голосов
/ 10 июня 2018

Некоторое время назад я написал ответ для чего-то похожего (я думаю): Wix: Служба Windows иногда удаляется при обновлении .Пожалуйста, прочитайте эту ссылку для нескольких различных предложений.

Незначительное обновление : В дополнение к опциям в связанном ответе вы также можете использовать незначительное обновление -если это вообще приемлемый вариант.При незначительном обновлении продукт не удаляется, а затем переустанавливается, а обновляется «на месте».Для того, чтобы небольшие обновления работали, вы должны следовать правилам компонента до буквы - что может быть трудно сделать, но вы можете выполнить обновление без потери сервисных кредитов. См. Ниже, как применяется незначительное обновление .И я просто сошлюсь на ответ с небольшим количеством информации о позднем REP .

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

(управляемые) учетные записи служб : не то, что я использовал, но более новое концепция управляемых учетных записей , как описано выше, может быть исследован связанный ответ? Шаг за шагом .

Поздний REP / Сервис MSI : правильное планирование RemoveExistingProducts поздно означает, что ваша служба не должна быть удалена во времяСценарии обновления (подробности см. в связанном ответе).Может быть трудно следовать всем правилам компонентов буквально, но вы можете упростить это, поместив свой сервис в свою собственную, минимальную установку MSI, а затем установив его с помощью пакета WiX Burn (последовательная установка файлов MSI).


Как указано несколько раз, прочитайте, пожалуйста, аналогичный ответ: Wix: Служба Windows иногда удаляется при обновлении .

...