Compartilhar via


Ação InstallValidate

A ação InstallValidate verifica se todos os volumes aos quais o custo foi atribuído têm espaço suficiente para a instalação. A ação InstallValidate encerrará a instalação com um erro fatal se algum volume estiver com pouco espaço em disco.

A ação InstallValidate também notifica o usuário se um ou mais arquivos a serem substituídos ou removidos estão atualmente em uso por um processo ativo. Para obter mais informações, confira Reinicializações do sistema.

Restrições de sequências

A ação CostFinalize e todas as sequências de caixa de diálogo da interface do usuário que permitem ao usuário modificar estados de seleção e/ou diretórios devem ser sequenciados antes da ação InstallValidate.

Ações personalizadas que alteram o estado de instalação de recursos ou componentes devem ser sequenciadas antes da ação InstallValidate.

Mensagens ActionData

Não há mensagens ActionData.

Comentários

Normalmente, uma sequência de caixa de diálogo anterior da interface do usuário deve executar a mesma verificação que a ação InstallValidate quando o usuário tenta iniciar a cópia de arquivos. Essa sequência de caixa de diálogo da interface do usuário deverá apresentar uma caixa de diálogo Espaço fora do disco se os volumes selecionados não tiverem espaço suficiente para a instalação. As caixas de diálogo da interface do usuário devem ser criadas de forma a impedir que o usuário prossiga com a instalação se não houver espaço em disco suficiente. No caso de uma instalação silenciosa, não há interface do usuário e a ação InstallValidate encerra a instalação se não houver espaço em disco insuficiente. A causa da terminação prematura será registrada no arquivo de log se o registro em log estiver habilitado.

Uma entrada será adicionada a uma tabela FilesInUse interna se algum arquivo for substituído ou removido enquanto estiver aberto para execução ou modificação por qualquer processo durante o custo do arquivo. A tabela FilesInUse contém colunas para o nome e o caminho completo do arquivo. Quando a ação InstallValidate é executada, o instalador consulta a tabela FilesInUse em busca de entradas e determina o nome do processo usando o arquivo. A ação InstallValidate adiciona um registro à tabela de interface do usuário ListBox para cada processo exclusivo identificado por essa consulta. O registro contém os seguintes valores em cada coluna:

Property: FileInUseProcess

 

Value: nome do processo

 

Text: texto contido na legenda da janela principal do processo

A ação InstallValidate exibe a caixa de diálogo Arquivos em Uso. Essa caixa de diálogo exibe os processos que devem ser desligados para evitar a necessidade de reiniciar o sistema para substituir arquivos em uso.

A ação InstallValidate consulta a tabela Dialog de uma caixa de diálogo criada com o nome reservado FilesInUse e a exibe. Essa caixa de diálogo deve conter um controle ListBox vinculado a uma propriedade chamada FileInUseProcess. Por convenção, essa caixa de diálogo tem um botão Sair, Repetir ou Ignorar, mas isso cabe ao autor da interface do usuário. Cada botão deve ser vinculado a um EndDialog ControlEvent na tabela ControlEvent. A ação InstallValidate responde da seguinte maneira ao valor retornado pelo DoAction ControlEvent, conforme ditado por um desses argumentos EndDialog associados ao botão enviado pelo usuário:

Retry: todos os valores adicionados à tabela ListBox são apagados e todo o procedimento de custo do arquivo é repetido, verificando novamente os arquivos que ainda estão em uso. Se um ou mais processos ainda forem identificados como usando arquivos a serem substituídos ou excluídos, o processo se repetirá; caso contrário, InstallValidate retorna o controle para o instalador com um status de msiDoActionStatusSuccess.

Exit: a ação InstallValidate retorna imediatamente o controle para o instalador com um status de msiDoActionStatusUserExit. Isso encerra a instalação.

Any other return value: a ação InstallValidate retorna imediatamente o controle para o instalador com um status de msiDoActionStatusSuccess. Nesse caso, como um ou mais arquivos ainda estão em uso, as ações subsequentes InstallFiles e/ou InstallAdminPackage devem agendar os arquivos em uso para serem substituídos ou excluídos quando o sistema for reiniciado.

Se não houver nenhuma tabela ListBox no banco de dados, InstallValidate sairá silenciosamente sem um erro.

O ponto e vírgula é o delimitador de lista para transformações, fontes e patches e não deve ser usado nesses nomes de arquivo ou caminhos.

Os arquivos marcados como somente leitura em um local somente leitura nunca são considerados em uso pelo instalador.

Uma caixa de diálogo padrão Fora do Espaço em Disco que contém botões Anular e Repetir será apresentada ao usuário se o nível da interface do usuário for básico.