Wix Пользовательское действие при запуске - PullRequest
0 голосов
/ 05 октября 2010

Как запустить пользовательское действие Wix (из C # .NET CA Lib) до того, как произойдет какой-либо пользовательский интерфейс?

Ответы [ 2 ]

2 голосов
/ 05 октября 2010

Я думаю, что лучше контролировать это, используя атрибут 'Sequence' элемента Custom .

Если вы откроете выходной MSI с помощью Orca , переключитесь на InstallUISequence или InstallExecuteSequence таблицу и отсортируете записи по столбцу «Sequence», выувидим последовательность выполняемых действий.Таким образом, при планировании вашего пользовательского действия вы можете явно указать последовательность:

<Custom Action="YourAction" ... Sequence="49" />

Более удобный подход - использовать атрибуты до и после, которые являются взаимоисключающими с последовательностью.Просто найдите действие, которое вы хотели бы выполнить до или после, и запланируйте его соответствующим образом:

<Custom Action="YourAction" ... Before="AnotherAction" />

Следует учитывать тот факт, что InstallUISequence может не запускаться (основной пользовательский интерфейс), поэтомуесли вы хотите, чтобы ваше действие выполнялось в любом случае и только один раз, добавьте атрибут Execute='firstSequence' в определение настраиваемого действия:

<CustomAction Id="YourAction" ... Execute="firstSequence" />

Обязательно изучите wix.chm и MSDN для получения дополнительной информации онестандартные действия.Надеюсь, это поможет.

0 голосов
/ 05 октября 2010

Я нашел решение. Вы можете добавить этот код в UI.wxs

<Publish Dialog="YOUR_DIALOG" Control="SOME_TEXT" Event="DoAction" Value="CA_NAME" Order="you_order">CONDITION</Publish>
...