Compartir a través de


Ordenación de los números de secuencia de archivo en un archivo .cab, una tabla File y una tabla Media

La tabla File contiene una lista completa de todos los archivos de origen de la instalación. Los archivos se pueden almacenar en el medio de origen como archivos individuales o comprimidos en archivos .cab. Los números de secuencia de la columna Sequence de la tabla File, junto con el campo LastSequence de la tabla Media, especifican el orden de instalación de los archivos y el medio de origen en el que se encuentra cada archivo. Cada registro de la tabla Media identifica el disco de origen que contiene todos los archivos con números de secuencia menores o iguales que el valor mostrado en la columna LastSequence y mayores que el valor LastSequence del disco anterior.

Por ejemplo, supongamos que un archivo tiene el número de secuencia 92 especificado en la columna Sequence de la tabla File. Para determinar en qué disco de origen reside este archivo, el instalador busca en el registro de la tabla Media la entrada con el valor LastSequence más pequeño que sea mayor que 92. La columna DiskId es la clave principal de la tabla Media y este campo identifica de forma única el disco de la tabla.

El límite máximo del número de archivos que se pueden enumerar en la tabla File de un paquete de Windows Installer es de 32 767 archivos. Para crear un paquete de Windows Installer que contenga más archivos, vea Creación de un paquete grande.

Los autores de paquetes pueden reducir el tamaño de los paquetes de instalación si comprimen los archivos de origen y los incluyen en archivos .cab. La imagen del archivo de origen se puede comprimir, descomprimir o ambas cosas. Para obtener más información sobre los orígenes comprimidos y sin comprimir, vea Orígenes comprimidos y sin comprimir. Los archivos de origen comprimidos deben almacenarse en un archivo .cab. Los archivos comprimidos incluidos en un archivo .cab tienen sus propios números de secuencia internos. No es necesario que los valores de estos números de secuencia internos coincidan con el valor de los números de secuencia de la tabla File. Aun así, la secuencia de los archivos especificados en la tabla File debe ser idéntica a la secuencia real de los archivos incluidos en los archivos .cab. No hace falta que los números de secuencia de los archivos sin comprimir sean únicos. Por ejemplo, si todos los archivos están sin comprimir y residen en un disco, todos los archivos pueden tener el mismo número de secuencia en la tabla File.

En la tabla Media se describe el conjunto de discos que componen los medios de origen para la instalación. La primera entrada de la tabla Media siempre debe tener un 1 en el campo DiskId. Los archivos deben organizarse en el medio de origen de modo que todos los archivos del disco 1 tengan números de secuencia de la tabla File menores que los números de secuencia de los archivos del disco 2, todos los números de secuencia del disco 2 sean menores que los del disco 3, y así sucesivamente. Este requisito también se aplica a los discos que contengan orígenes comprimidos y sin comprimir. Por ejemplo, si los orígenes de medios de la instalación se encuentran en dos discos de origen, y si el disco 1 contiene archivos sin comprimir y un archivo .cab, tanto los archivos sin comprimir como los archivos .cab deben tener números de secuencia menores que el número de secuencia de archivo más pequeño de cualquier archivo almacenado en el disco 2. Si todos los archivos del disco 1 se comprimen en un archivo .cab, la tabla Media podría crearse como se muestra en la tabla siguiente.

Tabla Media (parcial)

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

 

Si algunos archivos del disco 1 están comprimidos en un archivo .cab y otros están sin comprimir, la tabla Media podría crearse de la manera siguiente.

Tabla Media (parcial)

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

 

Tenga en cuenta que la creación de la siguiente tabla Media es incorrecta porque especifica algunos números de secuencia de archivo en el disco 2 que son más pequeños que algunos archivos incluidos en el archivo .cab en el disco 1.

Tabla Media

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

 

Los archivos grandes se pueden dividir entre dos o más archivos .cab. No puede haber más de 15 archivos en un archivo .cab que abarque el siguiente archivo .cab. Por ejemplo, si tiene tres archivos .cab, el primero puede tener 15 archivos que abarcan el segundo archivo .cab, y el segundo puede tener 15 archivos que abarcan el tercer archivo .cab. Cuando agregue a la tabla File el registro de un archivo contenido en varios archivos .cab, use la primera parte del archivo para especificar el número de secuencia de archivo que escriba en la columna Sequence.

Las tablas File y Media se pueden crear de la manera siguiente si hay tres archivos, dos archivos .cab y dos discos. En este ejemplo, c1.cab reside en Disco 1 y c2.cab reside en Disco 2. El archivo f2 abarca ambos archivos .cab. El archivo c1.cab contiene todo el archivo f1 y la primera parte del archivo f2. El archivo c2.cab contiene la segunda parte del archivo f2 y el archivo f3 completo.

Tabla Media (parcial)

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

 

Tabla File (parcial)

Archivo Secuencia
f1 1
f2 2
f3 6