У меня есть проект установщика для установки службы 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 после того, как пользователь укажет имя службы?