Порядок выполнения действий WiX SetProperty
-
06-07-2019 - |
Вопрос
У меня есть последовательность SetProperty действий, которые зависят друг от друга. Вот упрощенный пример:
<SetProperty Id="A" Before="AppSearch" Value="Hello" />
<SetProperty Id="B" Before="AppSearch" Value="[A] world!" />
Свойство A необходимо установить перед свойством B в этом случае, чтобы значение B становилось «Hello world!».
Поскольку WiX не определяет атрибут для установки имени настраиваемого действия в этом случае У меня нет имени для использования в атрибутах До или После .
Я сделал заметил, что порядок выполнения этих действий соответствует алфавитному порядку имен свойств, но это похоже на детали реализации, на которые я не должен полагаться.
Как правильно установить порядок пользовательских действий SetProperty
?
Решение
Вы также можете использовать & # 8220; Действие & # 8221; Атрибут элемента SetProperty, чтобы записать имя настраиваемого действия. Это становится необходимым, если вы хотите установить одно и то же свойство в двух разных действиях SetProperty, так как оно удаляет неоднозначные & # 8220; SetXXX & # 8221; имена действий.
Например:
<SetProperty Id="A" Action="MyFirstAction" Before="AppSearch" Value="Hello" />
<SetProperty Id="B" Action="MySecondAction" After="MyFirstAction" Value="[A] world!" />
<SetProperty Id="A" Action="MyThirdAction" After ="MySecondAction" Value="Goodbye cruel world!" />
Другие советы
Я использовал orca , чтобы обнаружить имена, сгенерированные для пользовательских действий. Они оказываются SetA
и SetB
. Следующее делает то, что я хочу:
<SetProperty Id="A" Before="AppSearch" Value="Hello" />
<SetProperty Id="B" After="SetA" Value="[A] world!" />