служба Windows не удаляется при удалении настроек, созданных в WIX - PullRequest
1 голос
/ 06 сентября 2011

Я создал установку, которая устанавливает службу Windows, но при ее удалении служба остается запущенной, а не удаляется.У меня есть настройки MSI в Wix.

 <DirectoryRef Id="INSTALLDIR">
       <Component Id='MyComponent' Guid='CDBA9BC4-F839-4CAB-8AB0-4397EC079541'>
<File Id='LogFWService' Name='LogFWService.exe' Source="$(var.LFShared)\LogFWService.exe" KeyPath="yes" />
 <ServiceInstall Id="InstallLFService" Name="LogFWService" DisplayName="OpenFramework Logging Service" Start="auto" ErrorControl="normal" Description="Captures log events and inserts the log messages into database" Type="ownProcess">
           <ServiceDependency Id="MSMQ" />
 </ServiceInstall>

<ServiceControl Id="sc_InstallLFService" Name="LogFWService" Start="install" Remove="uninstall" Stop="both" Wait="yes"/>
       </Component>
     </DirectoryRef>

Даже если я использовал атрибут удаления файла, но он все равно не удаляет службу Windows при удалении.Пожалуйста, помогите, если у вас есть какие-либо знания об удалении службы Windows.

Ответы [ 2 ]

2 голосов
/ 13 октября 2011

У меня была похожая проблема.Я не уверен на 100%, но думаю, что он исчез после того, как я изменил GUID компонента установки.Предыдущий GUID был скопирован из другого проекта вместе со всей разметкой установки для установки службы Windows, и я забыл заменить ее на новый GUID.

Кстати: вы можете удалить «оставшуюся» службу, используя команду propmt команда sc:

sc удалить "YourServiceNameHere"

0 голосов
/ 15 сентября 2015

Это происходило при тестировании нескольких версий одного и того же установщика wix в среде разработки. Проблема в том, что он не может удалить сущность (компонент), потому что существует зависимость, которая все еще объявляется. Обычно это происходит из-за того, что некоторые ключи реестра остались от предыдущих попыток.

Поиск следующего и удаление соответствующих (не всех) клавиш

  • Идентификатор файла ключа в компоненте
  • GUID компонента
  • Имя каталога / папки (может быть включено число ссылок в \ HKLM \ MS \ Win \ CurVer \ Installer \ Folders)
  • Имя файла ключа (также подсчет ссылок, но не в ключе папок)

Некоторые ключи, которые отображаются при поиске имен, обычно находятся в списках «Последние использованные» или в других благоприятных местах. Это может быть утомительным процессом при использовании стандартного regedit, поэтому, если вы идете по этому пути, рекомендуется лучший инструмент.

В идеале вы должны тестировать установщики на компьютере, который можно вернуть в прежнее состояние.

...