Ações personalizadas de execução adiada
A finalidade de uma ação personalizada de execução adiada é atrasar a execução de uma alteração do sistema no momento em que o script de instalação é executado. É diferente de uma ação personalizada regular ou de uma ação padrão, na qual o instalador executa a ação imediatamente ao encontrá-la em uma tabela de sequência ou em uma chamada para MsiDoAction. Uma ação personalizada de execução adiada permite que um autor do pacote especifique as operações do sistema em determinado ponto na execução do script de instalação.
O instalador não executa uma ação personalizada de execução adiada no momento em que a sequência de instalação é processada. Em vez disso, o instalador grava a ação personalizada no script de instalação. O único parâmetro de modo que o instalador define nesse caso é MSIRUNMODE_SCHEDULED. Confira MsiGetMode para ver uma descrição dos parâmetros do modo de execução.
Uma ação personalizada de execução adiada deve ser agendada na tabela de sequência de execução na seção que executa a geração de script. As ações personalizadas de execução adiada devem ser executadas depois do InstallInitialize e antes do InstallFinalize na sequência de ações.
Ações personalizadas que definem propriedades, estados de recursos, estados de componente ou diretórios de destino ou agendam operações do sistema inserindo linhas em tabelas de sequência podem, muitas vezes, usar a execução imediata com segurança. No entanto, as ações personalizadas que alteram o sistema diretamente ou chamam outro serviço do sistema precisam ser adiadas para o momento em que o script de instalação é executado. Confira Ações Personalizadas Síncronas e Assíncronas para obter mais informações sobre possíveis conflitos entre suas ações personalizadas e o thread de instalação do main.
Como o script de instalação pode ser executado fora da sessão de instalação na qual foi gravado, a sessão pode não existir mais durante a execução do script de instalação. Isso significa que o identificador de sessão original e os dados de propriedade definidos durante a sequência de instalação não estão disponíveis para uma ação personalizada de execução adiada. As ações personalizadas adiadas que chamam DLLs (bibliotecas de vínculo dinâmico) passam um identificador que só pode ser usado para obter uma quantidade muito limitada de informações, conforme descrito em Como obter informações de contexto para ações personalizadas de execução adiada.
Observe que as ações personalizadas adiadas, incluindo ações personalizadas de reversão e ações personalizadas de confirmação, são os únicos tipos de ações que podem ser executadas fora do contexto de segurança dos usuários.
Tópicos relacionados