Пользовательские действия Wix с WixUI_Minimal
-
08-07-2019 - |
Вопрос
Итак, я пытаюсь после завершения установки приложения (хотя на самом деле не имеет значения, когда запускается вторичное приложение, так как оно не взаимодействует с установленными файлами во время установки), запустить другое Программа в комплекте с приложением. Соответствующий код (с различными элементами, замененными на & Quot; ... & Quot;:
<directory ...>
<component ...>
<File Id="IDINST" ... />
</component>
</directory>
...
<CustomAction Id="IDACTION" FileKey="IDINST" ExeCommand="..." Return="ignore" />
...
<InstallExecuteSequence>
<Custom Action="IDACTION" After="CostFinalize" />
</InstallExecuteSequence>
Я проверил каталог, и файл оказался там, где я ожидал, но он не был выполнен после процесса установки. По правде говоря, я даже не хочу, чтобы этот файл был установлен, просто запустите, а затем удалите. Но я пока проигнорирую это. В любом случае, я видел несколько примеров запуска действий после диалогов, но поскольку я сейчас использую <UIRef Id="WixUI_Minimal" />
, я не думаю, что это идеально.
Решение
CostFinalize происходит задолго до запуска отложенного действия InstallFiles (которое фактически размещает файл). Таким образом, CustomAction завершается с ошибкой (потому что файл недоступен) без вывода сообщений (потому что Return игнорируется)
Ваш CustomAction должен быть запланирован как минимум после InstallFiles и должен быть отложен, или если CustomAction не может запускаться с отложенным выполнением, то это должно быть после InstallFinalize (конечно, он не может вызвать откат после InstallFinalize).