WixSharp - указание порядка для запуска ManageAction при наличии нескольких
Я использовал ManagedActionand и ElevatedManagedAction некоторое время, и все было замечательно; однако сейчас мне нужно выполнить действия в определенном порядке или, по крайней мере, убедиться, что действия выполняются первыми / последними, если это необходимо.
Я предположил, что действия были выполнены в порядке, указанном, например:
Project project =
new Project("My Project",
new Property("SOME_PROPERTY", "ABC"),
new Dir(@"%ProgramFiles%\blah blah blah",
new File(...),
...
new ManagedAction(CustomActions.FirstAction, ...) {},
...
new ManagedAction(CustomActions.LastAction, ...) {}
...
У меня есть ряд действий, и тогда я подумал, ну... может быть снизу вверх, поэтому я поставил то, что хотел запустить, сначала внизу. Это не изменило порядок, поэтому я подумал, что может быть в алфавитном порядке, и сделал пару тестов, и, конечно же, это то, что он сделал.
Итак, есть ли другой способ указать порядок действий, которые называются, кроме добавления префикса для имени действия, например, A01_FirstAction, A02_LastAction ...?
Спасибо,
стог
1 ответ
Да, есть!
project.Actions = new WixSharp.Action[] {
new ManagedAction(CustomActions.MyFirstCustomAction,Return.check, When.Before, Step.InstallFinalize, Condition.NOT_Installed),
new ManagedAction(CustomActions.MySecondCustomAction,Return.check, When.After, Step.PreviousAction, Condition.NOT_Installed),
new ManagedAction(CustomActions.MyThirdCustomAction,Return.check, When.After, Step.PreviousAction, Condition.NOT_Installed)
}
Просто взгляните на 2 параметра When
а также Step
, В этом случае первый ManagedAction
Будет выполнено до шага InstallFinalize. Второй ManagedAction
будет выполнен после предыдущего действия. Это означает после предыдущего действия, определенного в массиве. То же самое с последним ManagedAction
, Вот так я и решил определить заказ.
Надеюсь это поможет.