Pregunta

Entonces, estoy tratando de, después de que una aplicación termina de instalarse (aunque en realidad, realmente no importa cuándo se ejecuta la aplicación secundaria, ya que no interactúa con los archivos instalados durante la instalación), ejecutar otra programa que se incluye con la aplicación. Código pertinente (con varias cosas reemplazadas por & Quot; ... & Quot ;:

<directory ...>
  <component ...>
  <File Id="IDINST" ... />
  </component>
</directory>
...
<CustomAction Id="IDACTION" FileKey="IDINST" ExeCommand="..." Return="ignore" />
...
<InstallExecuteSequence>
  <Custom Action="IDACTION" After="CostFinalize" />
</InstallExecuteSequence>

Revisé el directorio y el archivo estaba donde esperaba, pero no se ejecutó después del proceso de instalación. En verdad, ni siquiera quiero que se instale ese archivo, solo ejecutarlo y luego eliminarlo. Pero lo ignoraré por ahora. De todos modos, he visto varios ejemplos de acciones desencadenantes después de los diálogos, pero como actualmente estoy usando <UIRef Id="WixUI_Minimal" /> no creo que sea ideal.

¿Fue útil?

Solución

CostFinalize ocurre mucho antes de que se ejecute la acción diferida InstallFiles (que en realidad coloca el archivo). Por lo tanto, CustomAction falla (porque el archivo no está disponible) en silencio (porque se ignora el Retorno)

Necesita que su CustomAction esté programada al menos después de InstallFiles y sea diferida o si CustomAction no puede ejecutarse diferido, entonces debe ser posterior a InstallFinalize (por supuesto, no puede causar la reversión después de InstallFinalize).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top