#windows-services #wix3.5 #bootstrapper
Вопрос:
Недавно я преобразовал свой проект из пакета MSI в EXE с помощью проекта начальной загрузки. До этого удаление продукта работало нормально — служба была остановлена, а продукт удален. При удалении загрузчика через ARP и, следовательно, MSI, я получаю ошибку разрешения, останавливающую службу. Если я остановлю службу перед удалением, удаление завершится успешно.
Вот мой код управления службой из моего файла frag.wxs
<ServiceControl Id="StartWrapper" Name="myServiceName" Start="install" Stop="both" Remove="uninstall" Wait="yes"/>
Я не уверен, что нужно сделать, чтобы удаление продукта с помощью ARP могло остановить службу, кроме добавления пользовательского действия, которое остановит службу, что кажется излишним, поскольку ServiceControl уже имеет эту настройку по умолчанию.
Если я остановлю процесс удаления и попытаюсь остановить службу, я получу следующую ошибку
Ошибка 1061: В данный момент служба не может принимать управляющие сообщения.
Во время удаления пакета MSI есть фрагмент моего файла журнала
Action start 11:50:59: ProcessComponents.
MSI (s) (10:50) [11:50:59:228]: Doing action: UnpublishFeatures
Action ended 11:50:59: ProcessComponents. Return value 1.
Action start 11:50:59: UnpublishFeatures.
MSI (s) (10:50) [11:50:59:228]: Doing action: StopServices
Action ended 11:50:59: UnpublishFeatures. Return value 1.
Action start 11:50:59: StopServices.
MSI (s) (10:50) [11:50:59:228]: Doing action: DeleteServices
Action ended 11:50:59: StopServices. Return value 1.
Action start 11:50:59: DeleteServices.
MSI (s) (10:50) [11:50:59:228]: Doing action: RemoveRegistryValues
Action ended 11:50:59: DeleteServices. Return value 1.
Action start 11:50:59: RemoveRegistryValues.
MSI (s) (10:50) [11:50:59:228]: Doing action: RemoveShortcuts
Action ended 11:50:59: RemoveRegistryValues. Return value 1.
Фактическая ошибка возникает, когда удаляется папка, в которой хранятся все файлы продукта.
Единственный оставшийся файл-это исполняемый файл, который запускается службой, которая не остановлена.
Ошибка заключается в том, что доступ к пути запрещен
Любая помощь будет очень признательна!