Как убедиться, что настраиваемое действие запускается между установками
из двух компонентов?
Как правило, невозможно запланировать настраиваемое действие между двумя компонентами. Как вы уже узнали сами, атрибуты Before
и After
должны называть стандартное или настраиваемое действие.
Установщик Windows не устанавливает один компонент за другим. Компоненты - это просто логические группы элементов установки, т.е. г. ключи реестра, файлы и так далее, но они не определяют порядок установки. Вместо этого установщик Windows группирует различные виды ресурсов, такие как ключи реестра и файлы, и устанавливает эти группы в порядке, определенном таблицей InstallExecuteSequence
. Например, в один момент все файлы будут установлены (действие InstallFiles
), а позже будут записаны все ключи реестра (WriteRegistryValues
). Взгляните на предложенный InstallExecuteSequence
, чтобы получить лучшую идею.
При этом, если DatabaseSetup
устанавливает только один тип ресурса (скажем, файлы), а DatabaseCleanup
устанавливает другой тип (скажем, ключи реестра), вы можете запланировать настраиваемое действие между двумя связанными стандартными действиями (в этом кейс InstallFiles
и WriteRegistryValues
). Но если оба компонента устанавливают один и тот же тип ресурса или смешанные ресурсы, вы не можете использовать этот обходной путь. В этом случае вам придется преобразовать один из компонентов в настраиваемое действие, которое можно запланировать в любой момент.