2013-05-03 3 views
2

Мне было бы очень полезно решить, какие пользовательские действия я вызываю в определенные моменты моей установки, в зависимости от свойств, которые я установил в установщике.Динамически изменяющиеся ЦС в WIX Install Sequence

Например, если я хочу использовать отдельные библиотеки DLL для взаимодействия с различными версиями SQL (например, для SSRS 2005/2008R2).

Предположим, что действия, которые определяют, какой ЦС, с которым я должен работать (путем выяснения того, какая версия SSRS, на которую указывает установщик), выполняются с «немедленным», и CA, которые могут или не могут быть выполнены, зависят от этого результата и являются «отложенный»

Как я могу изменить, какой отложенный CA я выполняю в определенных частях установки, динамически, во время установки? .. Возможно ли это?

((WiX 2,0 предпочтительных, но более высокие версии ответов являются приемлемыми))

ответ

3

в области данных приводятся пользовательскими действия, которые изменяют состояние машины (что это звучит, как вы пишете) немедленно пользовательские действия должны читать таблицы и/или Свойства в MSI, чтобы запланировать соответствующие отложенные пользовательские действия для внесения изменений в машину.

Для достижения этой цели, все пользовательских действий определяются (CustomAction элементов в ваших .wxs файлах), но только непосредственные пользовательские действия запланированы (Custom/@Action элементов в InstallExecuteSequence). Непосредственные пользовательские действия будут выглядеть, принимать решения, устанавливать CustomActionData для отложенного пользовательского действия, а затем вызвать ::MsiDoAction() с именем соответствующего отложенного пользовательского действия, чтобы добавить отложенное пользовательское действие к сценарию установки в этот момент. Позже, когда установщик Windows выполнит сценарий установки (отложенная часть установки), отложенные пользовательские действия начнутся со всеми их данными.

Пользовательские действия набора инструментов WiX делают это все время, если вы ищете примеры.