Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
As ações personalizadas são agendadas em tabelas de sequência da mesma forma que as ações padrão.
Para agendar uma ação personalizada em uma tabela de sequência
- Insira o nome da ação personalizada (que é a chave primária da tabela CustomAction) na coluna Ação da tabela Sequência.
- Insira a sequência da ação personalizada em relação às outras ações na coluna Sequência da tabela Sequência. Para obter mais informações sobre tabelas de sequência, consulte Usando uma tabela de sequência.
- Para ignorar condicionalmente a ação, insira uma expressão condicional na coluna Condição da tabela Sequência. O instalador ignora essa ação se a expressão for avaliada como FALSE.
Como no caso de ações padrão, as ações personalizadas agendadas no InstallUISequence ou AdminUISequence são executadas somente se a interface de utilizador interna estiver definida para o nível completo. O nível da interface do usuário é definido usando a função MsiSetInternalUI.
As ações padrão e personalizadas agendadas nas tabelas de InstallExecuteSequence, AdminExecuteSequenceou AdvtExecuteSequence não fazem alterações no sistema. Em vez disso, o instalador enfileira os registros de execução em um script para execução subsequente durante o serviço de instalação. Se não houver nenhum serviço de instalação, as ações agendadas nessas tabelas serão executadas no mesmo contexto da sequência da interface do usuário.
Se o servidor instalador não estiver registrado, as ações personalizadas serão executadas no lado do cliente. Se o servidor estiver registrado e usando o modo de interface do usuário completo, as ações personalizadas serão executadas no lado do servidor.
Se estiver usando a interface do usuário completa com o servidor, as ações iniciais anteriores à ação InstallValidate serão executadas no cliente para permitir a interação completa. A execução é então comutada para o servidor, que repete essas ações e executa as ações de execução de script. Isto é seguido por um retorno ao cliente para as ações finais.
Observe que, se um produto for removido definindo seu recurso superior como ausente, a propriedade REMOVE pode não ser igual a ALL até depois da ação InstallValidate. Isso significa que qualquer ação personalizada que dependa de REMOVE=ALL deve ser sequenciada após a ação InstallValidate. Uma ação personalizada pode verificar REMOVER para determinar se um produto foi definido para ser completamente desinstalado.
As ações personalizadas que fazem referência a um arquivo instalado como origem, como Tipo de Ação Personalizada 17 (DLL), Tipo de Ação Personalizada 18 (EXE), Tipo de Ação Personalizada 21 (JScript) e Tipo de Ação Personalizada 22 (VBScript), devem aderir às seguintes restrições de sequenciamento.
- A ação personalizada deve ser sequenciada após a ação CostFinalize para que o caminho para o arquivo referenciado possa ser resolvido.
- Se o arquivo de origem ainda não estiver instalado no computador, as ações personalizadas adiadas (in-script) deverão ser sequenciadas após o InstallFiles.
- Se o arquivo de origem ainda não estiver instalado no computador, as ações personalizadas não adiadas deverão ser sequenciadas após a ação InstallInitialize.
As restrições de sequenciamento a seguir se aplicam a ações personalizadas que alteram ou atualizam um pacote do Windows Installer.
- Se a ação personalizada alterar o pacote, como ao adicionar linhas a uma tabela, a ação deverá ser sequenciada antes da ação InstallInitialize.
- Se a ação personalizada fizer alterações que afetariam o cálculo de custos, ela deverá ser sequenciada antes da ação CostInitialize.
- Se a ação personalizada alterar o estado de instalação de recursos ou componentes, ela deverá ser sequenciada antes da ação InstallValidate.