Compartilhar via


Como ordenar números de sequência de arquivos em um gabinete, em uma tabela de arquivos e em uma tabela de mídia

A tabela File contém uma lista completa de todos os arquivos de origem para a instalação. Os arquivos podem ser armazenados na mídia de origem como arquivos individuais ou compactados em arquivos de gabinete. Os números de sequência na coluna Sequence da tabela File, acompanhado do campo LastSequence da tabela Media, especificam a ordem de instalação dos arquivos e a mídia de origem na qual cada arquivo está localizado. Cada registro na tabela Media identifica o disco de origem que contém todos os arquivos com números de sequência inferiores ou iguais ao valor mostrado na coluna LastSequence e maiores que o valor LastSequence do disco anterior.

Por exemplo, suponha que um arquivo tenha o número de sequência 92 inserido na coluna Sequence da tabela File. Para determinar em qual disco de origem esse arquivo se encontra, o instalador verifica o registro da tabela Media em busca da entrada com o menor valor LastSequence que seja maior que 92. A coluna DiskId é a chave primária da tabela Media, e esse campo identifica exclusivamente o disco na tabela.

O limite máximo do número de arquivos que podem ser listados na tabela File de um pacote do Windows Installer é de 32.767 arquivos. Para criar um pacote do Windows Installer contendo mais arquivos, confira Como criar um pacote grande.

Os autores de pacotes podem reduzir o tamanho dos pacotes de instalação compactando os arquivos de origem e incluindo-os em arquivos de gabinete. A imagem do arquivo de origem pode ser compactada, descompactada ou uma combinação dos dois tipos. Para obter mais informações sobre as fontes compactadas e descompactadas, confira Fontes compactadas e descompactadas. Os arquivos de origem compactados precisam ser armazenados em um arquivo de gabinete. Os arquivos compactados em um gabinete têm números de sequência internos próprios. Os valores desses números de sequência internos não precisam corresponder ao valor dos números de sequência da tabela File. No entanto, a sequência dos arquivos especificada na tabela File precisa ser idêntica à sequência real dos arquivos dos gabinetes. Os números de sequência dos arquivos não compactados não precisam ser exclusivos. Por exemplo, se todos os arquivos estiverem descompactados e se encontrarem em um disco, todos os arquivos poderão ter o mesmo número de sequência na tabela File.

A tabela Media descreve o conjunto de discos que compõem a mídia de origem para a instalação. A primeira entrada na tabela Media sempre precisa ter um 1 no campo DiskId. Os arquivos devem ser organizados na mídia de origem de modo que todos os arquivos no disco 1 tenham números de sequência da tabela File menores que os números de sequência de arquivos no disco 2, e todos os números de sequência no disco 2 devem ser menores que no disco 3 etc. Esse requisito também se aplica a um disco que contém fontes compactadas e descompactadas. Por exemplo, se as fontes de mídia para a instalação estiverem localizadas em dois discos de origem e se o disco 1 contiver arquivos não compactados e um arquivo de gabinete, os arquivos não compactados e os arquivos no gabinete precisarão ter números de sequência menores que o menor número de sequência de arquivos de qualquer arquivo armazenado no disco 2. Se todos os arquivos no disco 1 forem compactados em um arquivo de gabinete, a tabela Media poderá ser criada conforme mostrado na tabela a seguir.

Tabela Media (parcial)

DiskId LastSequence DiskPrompt Gabinete VolumeLabel
1 5 1 mycab.cab Disco 1
2 10 2 Disco 2

 

Se alguns arquivos do disco 1 forem compactados em um gabinete e alguns estiverem descompactados, a tabela Media poderá ser criada conforme mostrado a seguir.

Tabela Media (parcial)

DiskId LastSequence DiskPrompt Gabinete VolumeLabel
1 5 1 Disco 1
2 10 1 mycab.cab Disco 1
3 15 2 Disco 2

 

Observe que a criação na tabela Media a seguir está incorreta porque especifica alguns números de sequência de arquivos no disco 2 que são menores que alguns arquivos do gabinete no disco 1.

Tabela Media

DiskId LastSequence DiskPrompt Gabinete VolumeLabel
1 5 1 Disco 1
2 10 2 Disco 2
3 15 1 mycab.cab Disco 1

 

Os arquivos grandes podem ser divididos entre dois ou mais arquivos de gabinete. Não pode haver mais de 15 arquivos em um arquivo de gabinete que abrange o próximo arquivo de gabinete. Por exemplo, se você tiver três arquivos de gabinete, o primeiro gabinete poderá ter 15 arquivos que abrangem o segundo arquivo de gabinete e o segundo gabinete poderá ter 15 arquivos que abrangem o terceiro arquivo de gabinete. Ao adicionar um registro à tabela File para um arquivo de vários gabinetes, use a primeira parte do arquivo para especificar o número de sequência de arquivos inserido na coluna Sequence.

As tabelas File e Media poderão ser criadas conforme mostrado a seguir se houver três arquivos, dois gabinetes e dois discos. Neste exemplo, c1.cab se encontra em disk1 e c2.cab se encontra em disk2. O arquivo f2 abrange os dois gabinetes. O gabinete c1.cab contém todo o arquivo f1 e a primeira parte do arquivo f2. O gabinete c2.cab contém a segunda parte de f2 e todo o arquivo f3.

Tabela Media (parcial)

DiskId LastSequence DiskPrompt Gabinete VolumeLabel
1 5 1 c1.cab Disco 1
2 10 2 c2.cab Disco 2

 

Tabela File (parcial)

Arquivo Sequência
f1 1
f2 2
f3 6