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 encerra a instalação com um erro fatal se algum volume estiver sem 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 estiverem em uso por um processo ativo. Para obter mais informações, consulte Reinicializações do Sistema.

Restrições de sequência

A ação CostFinalize e todas as sequências de caixa de diálogo de 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á nenhuma mensagem 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 Fora do Espaço em 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 do encerramento prematuro será registrada no arquivo de log se o registro em log estiver habilitado.

Uma entrada será adicionada a uma tabela Interna do FilesInUse se qualquer 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 do ListBox para cada processo exclusivo identificado por essa consulta. O registro contém os seguintes valores em cada coluna:

Propriedade: FileInUseProcess

 

Valor: nome do processo

 

Texto: 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 de diálogo 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 destes argumentos EndDialog associados ao botão pressionado pelo usuário:

Repetição: todos os valores adicionados à tabela ListBox são limpos 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 será repetido; caso contrário, InstallValidate retorna o controle para o instalador com um status de msiDoActionStatusSuccess.

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

Qualquer outro valor retornado: 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 de 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.

Arquivos marcados somente leitura em um local somente leitura nunca são considerados em uso pelo instalador.

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