Условно установить одно свойство WiX на разные значения - PullRequest
8 голосов
/ 08 июля 2011

У меня есть установщик, который развертывает веб-сайт как сайт IIS SSL или не-SSL, в зависимости от того, установлено свойство или нет. Меня попросили добавить опцию для установки порта, что не является проблемой, но я хотел бы установить для порта значения по умолчанию (80 или 443), если значение не установлено.

Я пробовал что-то вроде:

    <SetProperty Id="OUTPORT" Before="InstallFiles" Value="80"><![CDATA[SSL=0]]></SetProperty>
    <SetProperty Id="OUTPORT"  Before="InstallFiles" Value="443"><![CDATA[SSL=1]]></SetProperty>

Но, очевидно, WiX жалуется на настраиваемое действие с дублирующим идентификатором SetOUTPORT.

Прыгаю ли я сюда через другую кроличью нору в форме WiX?

Ответы [ 2 ]

17 голосов
/ 22 марта 2013

Принятый ответ не верен, если необходимо преобразовать в запись полностью пользовательское действие и последовательность (больше нет?).

Согласно документации для WiX 3, SetProperty Element

Без настройки SetProperty \ @ Action

<SetProperty Id="OUTPORT" Before="InstallFiles" Value="80"><![CDATA[SSL=0]]></SetProperty>
<SetProperty Id="OUTPORT"  Before="InstallFiles" Value="443"><![CDATA[SSL=1]]></SetProperty>

Duplicate symbol 'CustomAction:SetInstallFiles' found

Action . Строка .По умолчанию используется действие «Установить» + значение атрибута Id.Этот необязательный атрибут может переопределять имя действия в случае, когда несколько элементов SetProperty нацелены на один и тот же Id (возможно, с взаимоисключающими условиями).

Следующее работает без необходимости выписывать собственные действия.1017 *

Он работает в WiX 3.7, и я не уверен, с какой первой версии он доступен.

5 голосов
/ 08 июля 2011

SetProperty теперь поддерживает атрибут Action, что позволяет вам указывать идентификаторы настраиваемых действий, если вы хотите иметь несколько элементов SetProperty для одного свойства с разными условиями.

...