Pergunta

Então, estou tentando, depois que um aplicativo termina de instalação (embora, na verdade, isso realmente não importa quando o aplicativo secundário é executado, pois não interage com os arquivos instalados durante a instalação), execute outro programa que seja incluído com o aplicativo. Código pertinente (com várias coisas substituídas por "...":

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

Eu verifiquei o diretório e o arquivo estava onde eu esperava, mas ele não foi executado após o processo de instalação. Na verdade, eu realmente nem quero que esse arquivo seja instalado, basta executar e depois excluído. Mas vou ignorar isso por enquanto. De qualquer forma, eu vi vários exemplos de ações desencadeantes após diálogos, mas já que estou usando atualmente <UIRef Id="WixUI_Minimal" /> Eu não acho que seja ideal.

Foi útil?

Solução

O CostFinalize acontece muito antes de instalar os arquivos de ação diferida (que na verdade coloca o arquivo). Assim, o CustomAction está falhando (porque o arquivo não está disponível) silenciosamente (porque o retorno é ignorado)

Você precisa do seu CustomAction agendado pelo menos após os arquivos de instalação e ser adiado ou se o CustomAction não puder executar o diferido, ele deve ser após o InstallFinalize (é claro, não pode causar reversão após o instalação do Finalize).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top