Domanda

Quindi, sto provando a farlo, dopo che un'applicazione ha terminato l'installazione (anche se in verità, non importa quando viene eseguita l'applicazione secondaria, poiché non interagisce con i file installati durante l'installazione), eseguine un'altra programma fornito in bundle con l'applicazione. Codice pertinente (con varie cose sostituite con & Quot; ... & Quot ;:

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

Ho controllato la directory e il file era dove mi aspettavo, ma non è stato eseguito dopo il processo di installazione. In verità non voglio nemmeno che quel file venga installato, solo eseguito e quindi eliminato. Ma per ora lo ignorerò. Ad ogni modo, ho visto diversi esempi di azioni scatenanti dopo le finestre di dialogo, ma dal momento che sto usando <UIRef Id="WixUI_Minimal" /> non credo sia l'ideale.

È stato utile?

Soluzione

CostFinalize si verifica molto prima dell'esecuzione dell'azione differita di InstallFiles (che posiziona effettivamente il file). Pertanto CustomAction non riesce (perché il file non è disponibile) in silenzio (perché Return è ignorato)

È necessario che CustomAction sia pianificato almeno dopo InstallFiles e sia rinviato o se CustomAction non può essere rinviato, deve essere dopo InstallFinalize (ovviamente, non può causare il rollback dopo InstallFinalize).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top