Partilhar via


Obtendo informações de contexto para ações personalizadas de execução adiada

Como o script de instalação pode ser executado fora da sessão de instalação em que foi escrito, a sessão pode não existir mais durante a execução do script de instalação. Nesse caso, o identificador de sessão original e as propriedades definidas durante a sequência de instalação não estão disponíveis para uma ação personalizada de execução adiada. Todas as funções que exigem um identificador de sessão são restritas a alguns métodos que podem recuperar informações de contexto, ou então as propriedades que são necessárias durante a execução do script devem ser gravadas no script de instalação. Por exemplo, ações personalizadas adiadas que chamam bibliotecas de vínculo dinâmico (DLLs) passam por um identificador que só pode ser usado para obter uma quantidade muito limitada de informações. As funções que não exigem um identificador de sessão podem ser acessadas a partir de uma ação personalizada adiada.

As ações personalizadas de execução adiada são restritas a chamar apenas as seguintes funções que exigem um identificador.

Função Descrição
MsiGetProperty Suporta um conjunto limitado de propriedades quando usado com ações personalizadas de execução adiada: a propriedade CustomActionData, a propriedadeProductCode e a propriedade UserSID. A ação personalizadaCommit não pode usar a função MsiGetProperty para obter a propriedade ProductCode. Executar ações personalizadas pode usar a propriedade CustomActionData para obter o código do produto.
MsiFormatRecord Suporta um conjunto limitado de propriedades quando utilizado com as ações personalizadas de execução adiada : as propriedades CustomActionData e ProductCode.
MsiGetMode Quando chamado de ações personalizadas de execução adiada, ações personalizadas de confirmaçãoou ações personalizadas de reversão, MsiGetMode retorna Verdadeiro ou Falso quando solicitado a verificar os parâmetros de modo MSIRUNMODE_SCHEDULED, MSIRUNMODE_COMMIT ou MSIRUNMODE_ROLLBACK. As solicitações para verificar quaisquer outros parâmetros do modo de execução de uma ação personalizada adiada, confirmada ou de reversão retornam False.
MsiGetLanguage O ID do idioma numérico do produto atual.Confirmar ações personalizadas não pode usar a funçãoMsiGetLanguage. Ações de confirmação personalizadas podem usar a propriedade CustomActionData para obter a identificação numérica do idioma.
MsiProcessMessage Processa mensagens de erro ou progresso da ação personalizada.

 

Uma ação personalizada escrita em JScript ou VBScript requer a instalação objeto Session. Este é do tipo Session Object e o instalador anexa-o ao script com o nome "Session". Como o objeto Session pode não existir durante uma reversão de instalação, uma ação personalizada adiada escrita em script deve usar um dos seguintes métodos ou propriedades do objeto Session para recuperar seu contexto.

Nome Descrição
Propriedade do modo Retorna True somente para MSIRUNMODE_SCHEDULED.
Propriedade (Session Object) Retorna a propriedade CustomActionData, propriedade ProductCode ou propriedade UserSID.
Propriedade de Idioma (Session Object) Retorna a ID de idioma numérico da sessão de instalação.
Método Mensagem Chamado para lidar com erros e progresso.
Propriedade do Instalador Retorna o objeto pai, que é usado para funções que não são de sessão, como acesso ao Registro e gerenciamento de configuração do instalador.

 

Os valores de propriedade que são definidos no momento em que a sequência de instalação é processada no script podem não estar disponíveis no momento da execução do script. Apenas o seguinte conjunto limitado de propriedades está sempre acessível a ações personalizadas durante a execução do script.

Nome da propriedade Descrição
CustomActionData Valor no momento em que a ação personalizada é processada na tabela de sequência. A propriedade CustomActionData só está disponível para ações personalizadas de execução adiada. Ações personalizadas imediatas não têm acesso a esta propriedade.
ProductCode Código exclusivo para o produto, um GUID cadeia de caracteres.
UserSID Definido pelo instalador para o identificador de segurança (SID) do usuário.

 

Se outros dados de propriedade forem necessários pela ação personalizada de execução adiada, seus valores deverão ser armazenados no script de instalação. Isso pode ser feito usando uma segunda ação personalizada.

Para gravar o valor de uma propriedade no script de instalação para uso durante a execução de uma ação personalizada adiada

  1. Insira uma pequena ação personalizada na sequência de instalação que defina a propriedade de interesse como uma propriedade com o mesmo nome da ação personalizada de execução adiada. Por exemplo, se a chave primária para a ação personalizada de execução adiada for "MyAction", defina uma propriedade chamada "MyAction" para a propriedade X que você precisa recuperar. Você deve definir a propriedade "MyAction" na sequência de instalação antes da ação personalizada "MyAction". Embora qualquer tipo de ação personalizada possa definir os dados de contexto, o método mais simples é usar uma ação personalizada de atribuição de propriedade (por exemplo, Custom Action Type 51).
  2. No momento em que a sequência de instalação é processada, o instalador gravará o valor da propriedade X no script de execução como o valor da propriedade CustomActionData.

Sobre propriedades

Usando propriedades

Referência do Imóvel