Incluir um arquivo de gabinete em uma instalação
Esta seção descreve a inclusão de arquivos de gabinete em instalações. Para obter mais informações, confira Usar gabinetes e fontes compactadas..
Para incluir um arquivo de gabinete em um pacote de instalação
- Use uma ferramenta de criação de gabinete para compactar os arquivos de origem em um arquivo de gabinete. Confira Arquivos de gabinete.
- O arquivo de gabinete deve estar localizado em um fluxo de dados dentro do arquivo .msi ou em um arquivo de gabinete separado localizado na raiz da árvore de origem especificada pela Tabela de Diretórios.
- Determine se a origem deve ser um tipo compactado ou um tipo misto com arquivos descompactados e compactados. Confira Fontes compactadas e não compactadas. Dependendo do tipo de imagem de origem, defina os bits de sinalizador compactados ou descompactados da propriedade Resumo da contagem de palavras.
- Adicione um registro à tabela Arquivo para cada um dos arquivos no gabinete. Insira uma chave de arquivo na coluna Arquivo que corresponda exatamente à chave do arquivo no gabinete. As chaves de arquivo diferenciam maiúsculas de minúsculas. A sequência de instalação do arquivo na tabela Arquivo e no gabinete também deve ser a mesma. A sequência de arquivos é especificada pelo número de sequência na coluna Sequência. Para chegar ao número de sequência do primeiro arquivo no gabinete, faça o seguinte. Localize o registro existente na tabela Mídia com o maior valor na coluna DiskID. O campo LastSequence desse registro fornece o último número de sequência de arquivo usado na mídia. Na tabela Arquivo, atribua ao primeiro arquivo do novo gabinete um número de sequência maior que ele. Atribua números de sequência a todos os arquivos restantes na mesma ordem que no arquivo de gabinete. Para obter uma descrição dos campos de registro restantes, confira Tabela Arquivo.
- Adicione um registro à Tabela Mídia para o gabinete. Especifique um valor no campo DiskID do novo registro que seja superior ao maior valor de DiskID existente na tabela. Coloque o nome do gabinete no campo Gabinete. Esse nome deve estar na forma de um tipo de dado Gabinete. Inclua um prefixo no nome com um sinal numérico "#" se o gabinete for um fluxo de dados armazenado no arquivo .msi. Observe que, se o gabinete for um fluxo de dados, o nome do gabinete diferenciará maiúsculas de minúsculas. Se o gabinete for um arquivo separado, o nome do arquivo não diferenciará maiúsculas de minúsculas.
- Determine o maior número de sequência de arquivo no novo gabinete verificando a coluna Sequência da tabela de arquivos atualizada. Insira um valor maior no campo LastSequence do novo registro da tabela Mídia. Para obter uma descrição dos campos de registro restantes, confira Tabela Mídia.
- Você pode armazenar o arquivo de gabinete no pacote de instalação usando uma ferramenta como o Msidb.exe ou usando as Funções de banco de dados do instalador. As quatro etapas a seguir explicam como adicionar o gabinete de um programa usando as funções do banco de dados.
- Para adicionar o gabinete ao pacote de instalação de um programa, abra uma exibição na tabela _Streams do banco de dados usando MsiDatabaseOpenView.
- Use MsiRecordSetString para definir a coluna Nome da tabela _Streams como o nome que aparece na coluna Gabinete da tabela Mídia. Omita o sinal numérico: #.
- Use MsiRecordSetStream para definir a coluna Dados da tabela _Streams como os dados do gabinete.
- Use MsiViewModify para atualizar o registro na tabela _Streams.
- Para usar o Msidb.exe para adicionar o arquivo de gabinete Mycab.cab ao pacote de instalação chamado Mydatabase.msi, use a seguinte linha de comando: Msidb.exe -d mydatabase.msi -a mycab.cab. Nesse caso, a coluna Gabinete da tabela Mídia deve conter a cadeia de caracteres: #mycab.cab.