Динамически меняющиеся CA в последовательности установки WIX

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

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

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

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

((WiX 2.0 предпочтительнее, но ответы более высокой версии приемлемы))

1 ответ

Решение

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

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

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

Другие вопросы по тегам