Usar Avaliadores internos de consistência

Para validar um banco de dados, use uma ferramenta de validação especial para mesclar um arquivo .cub que contém os ICEs (Avaliadores de Consistência Interna) no seu banco de dados, execute os ICEs e relate os resultados. Várias dessas ferramentas são fornecidas no SDK (Software Development Kit) do Microsoft Windows. Os ambientes de criação de fornecedores terceiros também podem incorporar o sistema de validação ICE. Também é possível gravar sua própria ferramenta para executar a validação do ICE. A maioria das ferramentas de validação ICE mescla o arquivo .cub e seu banco de dados em um terceiro banco de dados temporário. O Windows Installer exibe avisos, erros, informações de depuração e erros de API enquanto executa cada ICE no arquivo .cub. Quando o instalador conclui a execução dos ICEs, ele fecha o arquivo .msi, o arquivo .cub e o banco de dados temporário sem salvar nenhuma alteração. O arquivo .msi e o arquivo .cub permanecem inalterados pelo teste de validação.

As ações personalizadas do ICE se comunicam com o usuário chamando MsiProcessMessage e postando uma mensagem INSTALLMESSAGE_USER. Uma mensagem de ICE normalmente retorna informações como as seguintes:

  • Nome do ICE que encontrou um erro
  • Data em que o ICE foi criado
  • Criador do ICE
  • Data da última modificação no ICE.
  • Descrição do erro de API que causa falha no ICE
  • Descrição do erro
  • Um aviso ao usuário
  • Nome da tabela de banco de dados que contém o erro ou aviso
  • Nome da coluna da tabela que contém o erro ou aviso
  • Chaves primárias da tabela que contém o erro ou aviso
  • Uma URL para um arquivo HTML que dá sugestões de depuração
  • Uma cadeia de caracteres que pode conter outras informações

Os criadores de pacotes de instalação podem gravar ações personalizadas do ICE ou usar o conjunto padrão de ICEs incluídos nos arquivos .cub fornecidos com o SDK. Para mais informações sobre como gravar um ICE, consulte Criar um ICE.

Depois de gravar os ICEs apropriados para validação, um desenvolvedor deve coletar as ações personalizadas em um banco de dados .msi, chamado de arquivo .cub, que contém apenas os ICEs e suas tabelas necessárias. Um arquivo .cub não pode ser instalado e é usado apenas para armazenar e fornecer acesso a ações personalizadas do ICE. Para mais informações sobre como criar arquivos .cub, consulte Criar um banco de dados de ICE. Como alternativa, os desenvolvedores podem validar seu pacote de instalação usando os ICEs existentes descritos em Referência de ICE. Esses ICEs podem ser obtidos a partir de arquivos .cub padrão fornecidos com o SDK.

A instalação do editor da tabela de banco de dados, Orca, ou da ferramenta de validação msival2 fornece os arquivos Logo.cub, Darice.cub e Mergemod.cub. O conjunto de ICEs no arquivo Logo.cub é um subconjunto dos ICEs no arquivo Darice.cub. Se o pacote passar na validação usando Darice.cub, ele passará com Logo.cub. Mergemod.cub contém um conjunto de ICEs usados para validar módulos de mesclagem. Para obter mais informações, consulte Referência de ICE do módulo de mesclagem.

Para validar um pacote de instalação

  1. Obtenha ou crie as ações personalizadas dos ICEs apropriados. Você pode usar um ou mais dos ICEs existentes descritos na Referência de ICE. Se sua validação exigir um ICE que ainda não esteja nessa lista, você poderá criar um novo ICE, conforme descrito em Criar um ICE.
  2. Prepare um banco de dados de ICE que contém todas as ações personalizadas do ICE. Consulte a seção Criar um banco de dados de ICE para obter informações sobre como preparar um arquivo .cub.
  3. Forneça o arquivo .cub e o arquivo .msi a uma ferramenta de validação de pacote, como Orca.exe ou Msival2.exe.

Observe que os módulos de mesclagem devem ser validados conforme descrito em Validar módulos de mesclagem.