Поделиться через


Упорядочение порядковых номеров файлов в кабинете, таблице файлов и таблице мультимедиа

Таблица Файл содержит полный список всех исходных файлов для установки. Файлы могут храниться на исходном носителе как отдельные файлы или сжиматься в cab-файлах. Порядковые номера в столбце Последовательности таблицы File вместе с полем LastSequence таблицы Media указывают порядок установки файлов и исходный носитель, на котором находится каждый файл. Каждая запись в таблице Media определяет исходный диск, содержащий все файлы, порядковые номера которых меньше или равны значению, указанному в столбце LastSequence, и больше значения LastSequence предыдущего диска.

Например, предположим, что файл имеет порядковый номер 92, введенный в столбец Последовательности таблицы Файл. Чтобы определить, на каком диске находится этот файл, установщик проверяет запись таблицы Media для записи с наименьшим значением LastSequence, которое больше 92. Столбец DiskId является первичным ключом для таблицы Media, и это поле однозначно идентифицирует диск в таблице.

Максимальное количество файлов, которые могут быть перечислены в таблице Файл пакета установщика Windows, составляет 32767 файлов. Сведения о создании пакета установщика Windows, содержащего дополнительные файлы, см. в статье Создание большого пакета.

Авторы пакетов могут уменьшить размер установочных пакетов, сжимая исходные файлы и включая их в cab-файлы. Образ исходного файла может быть сжатым, несжатным или сочетанием обоих типов. Дополнительные сведения о сжатых и несжатых источниках см. в разделе Сжатые и несжатые источники. Сжатые исходные файлы должны храниться внутри cab-файла. Сжатые файлы внутри шкафа имеют собственные внутренние порядковые номера. Значения этих внутренних порядковых номеров не должны совпадать со значением порядковых номеров в таблице File. Однако последовательность файлов, указанных в таблице File, должна быть идентична фактической последовательности файлов в шкафах. Порядковые номера несжатых файлов не обязательно должны быть уникальными. Например, если все файлы распаковываются и находятся на одном диске, все файлы могут иметь одинаковый порядковый номер в таблице File.

В таблице Media описывается набор дисков, составляющих исходный носитель для установки. Первая запись в таблице Media всегда должна иметь значение 1 в поле DiskId. Файлы должны быть организованы на исходном носителе таким образом, чтобы все файлы на диске 1 имели порядковые номера таблицы файлов, которые меньше порядковых номеров файлов на диске 2, а все порядковые номера на диске 2 были меньше, чем на диске 3 и т. д. Это требование также применяется к диску, который содержит сжатые и несжатые источники. Например, если источники носителей для установки расположены на двух исходных дисках, а диск 1 содержит как несжатые файлы, так и cab-файл, то и несжатые файлы, и файлы в корпусе должны иметь порядковые номера меньше, чем наименьший порядковый номер любого файла, хранящегося на диске 2. Если все файлы на диске 1 сжаты в cab-файл, можно создать таблицу Media, как показано в следующей таблице.

Таблица мультимедиа (частичная)

DiskId LastSequence DiskPrompt Кабинет VolumeLabel
1 5 1 mycab.cab Диск 1
2 10 2 Диск 2

 

Если некоторые файлы на диске 1 сжимаются в шкафу, а некоторые — без сжатия, можно создать таблицу Media следующим образом.

Таблица мультимедиа (частичная)

DiskId LastSequence DiskPrompt Кабинет VolumeLabel
1 5 1 Диск 1
2 10 1 mycab.cab Диск 1
3 15 2 Диск 2

 

Обратите внимание, что в приведенной ниже таблице Мультимедиа указан неправильный код разработки, так как в ней указаны некоторые порядковые номера файлов на диске 2, которые меньше, чем некоторые файлы в корпусе на диске 1.

Таблица мультимедиа

DiskId LastSequence DiskPrompt Кабинет VolumeLabel
1 5 1 Диск 1
2 10 2 Диск 2
3 15 1 mycab.cab Диск 1

 

Большие файлы можно разделить между двумя или более cab-файлами. В одном cab-файле может быть не более 15 файлов, которые охватывают следующий cab-файл. Например, если у вас есть три cab-файла, первый кабинет может содержать 15 файлов, охватывающих второй кабинет, а второй — 15 файлов, которые охватывают третий кабинет. При добавлении записи в таблицу Файл для файла с несколькими шкафами используйте первую часть файла, чтобы указать порядковый номер файла, который вы вводите в столбце Последовательность.

Таблицы File и Media можно создать следующим образом при наличии трех файлов, двух шкафов и двух дисков. В этом примере c1.cab находится на диске disk1, а c2.cab — на диске 2. Файл f2 охватывает оба шкафа. Шкаф c1.cab содержит весь файл f1 и первую часть файла f2. Шкаф c2.cab содержит вторую часть f2 и весь файл f3.

Таблица мультимедиа (частичная)

DiskId LastSequence DiskPrompt Кабинет VolumeLabel
1 5 1 c1.cab Диск 1
2 10 2 c2.cab Диск 2

 

Таблица файлов (частичная)

File Последовательность
f1 1
f2 2
f3 6