Wix - Установка типа запуска службы с помощью свойства, свойство не распознано? - PullRequest
1 голос
/ 23 февраля 2012

Есть ли способ установить тип запуска службы с помощью свойства?WiX не признает собственность по какой-то причине.Это не должно быть сложно, но у меня возникают проблемы с его настройкой.

<Property Id="StartUpType" Value="auto" />
...
...
<Component Id="..." Guid="...">
<File Id='...' Name='...' DiskId='1' Source='...'  KeyPath='yes'/>
<ServiceInstall
    Id="..."
    Type="ownProcess"
    Name="..."
    DisplayName="..."
    Description="..."
    Start="[StartUpType]"
    Account="[SERVICEACCOUNT]"
    Password="[SERVICEPASSWORD]"
    ErrorControl="normal"
    Vital="yes"
    Interactive="no" />
<ServiceControl Id="ServiceControl1" Stop="uninstall" Remove="both" Name="..." Wait="yes" />

Точнее, эта строка

Start="[StartUpType]"

не распознает мойporperty.

Ошибка: значение атрибута ServiceInstall / @ Start, «[StartUpType]», не является одним из допустимых параметров: «авто», «требование» или «отключено».

Любое предложение, чтобы заставить его признать мою собственность?Спасибо!

1 Ответ

2 голосов
/ 24 февраля 2012

Пара вещей, только столбцы в Windows Installer типа Formatted могут использовать замены [Property] во время выполнения. Единственный обходной путь для этого - 2 компонента с различными реализациями таблицы ServiceInstall, где компоненты имеют взаимоисключающие условия, так что устанавливается только 1.

Кроме того, для замены могут использоваться только открытые свойства [PROPERTY], помеченные атрибутом Secure (также называемое безопасным настраиваемым общедоступным свойством), поскольку общие и частные свойства регулятора не сохраняются в пользовательском интерфейсе для выполнения последовательностей.

Маршрут препроцессора будет работать только в том случае, если вы хотите построить похожие, но разные MSI. (Постройте точки изменения времени.) Если вы хотите установить точку изменения времени установки, вам придется пройти маршрут взаимоисключающего компонента или сложный маршрут динамически выделяемой таблицы ServiceInstall, используя настраиваемые действия, которые используют временные таблицы SQL. (Гораздо сложнее ...)

...