Я использую установщик wix для перезаписи (читай: изменение существующих значений реестра), добавления новых и т. Д. После удаления мне нужно вернуть их в исходное состояние (те, которые я изменил). Поскольку это не поддерживается Wix, и поэтому мне нужно использовать настраиваемое действие (как я читал), я хочу запустить exe, который будет запускать файл .reg с использованием reg import
. Согласно этому сайту: http://www.installsite.org/pages/en/isnews/200108/index.htm мое настраиваемое действие должно выполняться After="InstallFinalize"
, потому что откат wix удалит мой импорт реестра (как часть отката). По сути, это выглядит так: установщик изменяет значения reg, деинсталлятор удаляет все затронутые изменения реестра (часть отката), мой exe восстановит их.
Итак, я сделал, как он сделал, чтобы запустить свой exe с повышенными правами и т. Д. http://wixtoolset.org/documentation/manual/v3/customactions/qtexec.html
<Component Id="registry" Guid="*">
<File Id="regexe" Source="RegistryRollback.exe"/>
<File Id="regfile" Source="Reg_rollback.reg" />
</Component>
<Property Id="LaunchRegExe" Value="[#regexe]" />
<CustomAction Id="LaunchRegExe" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="deferred" Return="check" Impersonate="no"/>
<Custom Action='LaunchRegExe' After='InstallFinalize'>Installed AND NOT UPGRADINGPRODUCTCODE</Custom>
но я получаю Error 19 ICE77: LaunchRegExe is a in-script custom action. It must be sequenced in between the InstallInitialize action and the InstallFinalize action in the InstallExecuteSequence table C:\Merlin\Main\Demo\KioskDemoSetup\nw_setup\nw.wxs 250 1 nw_setup
Спасибо за помощь!
InstallInitialize
иInstallFinalize
, ваше действие будет выполняться только при удалении, которое ведет себя иначе, когда вы его отменяете. Означает, что ваш exe будет запускаться только при удалении, в отложенном контексте, когда-то до того, как (де) установка будет завершена. - person Ryan J   schedule 31.10.2014