Упорядочение порядковых номеров файлов в кабинете, таблице файлов и таблице мультимедиа
Таблица Файл содержит полный список всех исходных файлов для установки. Файлы могут храниться на исходном носителе как отдельные файлы или сжиматься в 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 |