Incluir un archivo de gabinete en una instalación
En esta sección se describen los archivos de gabinete en instalaciones. Para obtener más información, consulte Uso de gabinetes y orígenes comprimidos.
Cómo incluir un archivo de gabinete en un paquete de instalación
- Use una herramienta de creación de gabinetes para comprimir los archivos de origen en un archivo de gabinete. Consulte Archivos de gabinete.
- El archivo de gabinete debe estar ubicado en un flujo de datos dentro del archivo .msi o en un archivo de gabinete independiente ubicado en la raíz del árbol de origen indicado por la tabla de directorios.
- Determine si el origen debe ser de tipo comprimido o tipo mixto que tenga archivos sin comprimir y comprimidos. Consulte Orígenes comprimidos y sin comprimir. En función del tipo de imagen de origen, establezca los bits de flag comprimidos o sin comprimir de la propiedad Word Count Summary.
- Agregue un registro a la tabla File en cada uno de los archivos del gabinete. Escriba una clave de archivo en la columna File que sea la misma que la clave de archivo del archivo en el gabinete. Las claves de archivo distinguen mayúsculas de minúsculas. La secuencia de instalación de archivos en la tabla File y el gabinete también deben ser iguales. La secuencia de archivos se indica mediante el número de secuencia de la columna Sequence. Para llegar al número de secuencia del primer archivo del gabinete, haga lo siguiente. Busque el registro existente en la tabla Media con el mayor valor en la columna DiskID. El campo LastSequence de este registro ofrece el último número de secuencia de archivo usado en el elemento multimedia. En la tabla File, asigne al primer archivo del nuevo gabinete un número de secuencia mayor que este. Asigne números de secuencia a todos los archivos restantes en el mismo orden que en el archivo de gabinete. Para ver una descripción de los campos de registro restantes, consulte Tabla File.
- Agregue un registro a la tabla Media del gabinete. Indique un valor en el campo DiskID de este nuevo registro que sea mayor que el valor DiskID mayor que ya existe en la tabla. Coloque el nombre del gabinete en el campo Cabinet. Este nombre debe tener un formato de tipo de datos Cabinet. Ponga un prefijo al nombre con el signo "#" si el gabinete es un flujo de datos almacenado en el archivo .msi. Tenga en cuenta que si el gabinete es una secuencia de datos, el nombre del gabinete distingue mayúsculas de minúsculas. Si el gabinete es un archivo independiente, el nombre del archivo no distingue mayúsculas de minúsculas.
- Determine el mayor número de secuencia de archivos en el nuevo gabinete comprobando la columna Sequence de la tabla File actualizada. Escriba un valor mayor que este en el campo LastSequence del nuevo registro de la tabla Media. Para ver una descripción de los campos de registro restantes, consulte Tabla Media.
- Puede almacenar el archivo de gabinete en el paquete de instalación mediante una herramienta como Msidb.exe o mediante las funciones de base de datos del instalador. En los cuatro pasos siguientes se explica cómo agregar el gabinete a través un programa mediante las funciones de base de datos.
- Para agregar el gabinete al paquete de instalación a través de un programa, abra una vista en la tabla _Streams de la base de datos con MsiDatabaseOpenView.
- Use MsiRecordSetString para aplicar la columna Name de la tabla _Streams en el nombre que aparece en la columna Cabinet de la tabla Media. Omita el signo #.
- Use MsiRecordSetStream para aplicar la columna Data de la tabla _Streams en los datos del gabinete.
- Use MsiViewModify para actualizar el registro en la tabla _Streams.
- Para usar Msidb.exe con el fin de agregar el archivo de gabinete Mycab.cab al paquete de instalación denominado Mydatabase.msi, use la siguiente línea de comandos: Msidb.exe -d mydatabase.msi -a mycab.cab. En este caso, la columna Cabinet de la tabla Media debe incluir la cadena: #mycab.cab.