Wix: установка службы Windows с указанным пользователем именем службы - PullRequest
2 голосов
/ 16 января 2012

У меня есть проект установщика для установки службы Windows. Этот установщик содержит диалог пользовательского интерфейса, позволяющий пользователю указать имя службы. Это имя службы хранится в публичной собственности. Программа установки успешно создает службу с указанным именем, но когда я пытаюсь удалить ее, программа установки пытается остановить и удалить службы со свойством Имя службы по умолчанию (не указывается пользователем).

Код установки моей службы выглядит следующим образом:

...
<Property Id="SERVICE_NAME" Value="Default_Service_Name" />
...
<Component Id="C.service.exe" Guid="...">
        <File Id="service.exe" Name="$(var.service.TargetFileName)" KeyPath="yes" Vital="yes"
              Source="$(var.service.TargetPath)" />
        <ServiceInstall Id="MyServiceInstall" DisplayName="[SERVICE_NAME]" Account="[SERVICE_ACCOUNT]" Password="[SERVICE_PASSWORD]"
                        Name="[SERVICE_NAME]" ErrorControl="normal" Start="auto" Type="ownProcess" Vital="yes">
        </ServiceInstall>
        <ServiceControl Id="MyServiceStart" Name="[SERVICE_NAME]" Start="install" Wait="no" />
        <ServiceControl Id="MyServiceStop" Name="[SERVICE_NAME]" Stop="both" Wait="yes" />
        <ServiceControl Id="MyServiceRemove" Name="[SERVICE_NAME]" Remove="uninstall" Wait="yes" />
      </Component>
...

Может быть, мне нужен CA для обновления таблицы SerciceControl после того, как пользователь укажет имя службы?

1 Ответ

5 голосов
/ 16 января 2012

Вам необходимо сохранить любые предоставленные пользователем данные, которые необходимо удалить, например, сохранив их в реестре. См. Шаблон «Запомнить свойство» набора инструментов WiX .

...