У меня есть установщик WiX, который запускает функцию extern в c ++ dll как пользовательское действие (Execute="deferred"
). Я передаю ему необходимые значения свойств, устанавливая свойство, имя которого точно совпадает с идентификатором CustomAction (custActID в примере ниже).
<CustomAction Id="SetOutputProperty" Property="custActID"Value="ONE=[ONE];TWO=[TWO];THREE=[THREE];" />
<CustomAction Id="custActID"BinaryKey="BIN_NWCONFIGDLL"DllEntry="dllEntryFunction"Impersonate="no"Execute="deferred"Return="check"HideTarget='yes' />
Тогда я могу получить все данные в c ++ dll, используя:
MsiGetProperty(hInstall, "CustomActionData")
Мой вопрос: Можно ли установить некоторые свойства в WIX из этой DLL?
Так:
Я имею право собственности, скажем THREE
в Wix. Я передаю это в DLL.
Dll получит некоторые данные от пользователя (проверьте их особым образом, если они верны) и, наконец, обновит это свойство THREE
, Я хотел бы передать его обратно в WIX.
Нет, отложенные пользовательские действия не могут устанавливать свойства. При запуске отложенных настраиваемых действий данные настраиваемых действий уже были установлены, поэтому настраиваемые действия не могут влиять на данные, передаваемые в последующие настраиваемые действия.
Других решений пока нет …