Вопрос

Итак, я пытаюсь после завершения установки приложения (хотя на самом деле не имеет значения, когда запускается вторичное приложение, так как оно не взаимодействует с установленными файлами во время установки), запустить другое Программа в комплекте с приложением. Соответствующий код (с различными элементами, замененными на & 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).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top