Inserción de transformaciones de personalización como subalmacenamiento
Puede almacenar la transformación de personalización en un almacenamiento del paquete de Windows Installer para garantizar que la transformación esté siempre disponible cuando el paquete de instalación esté disponible. Consulte Transformaciones insertadas. Se proporciona un ejemplo de esto en el SDK de Windows Installer como la utilidad WiSubStg.vbs. En el siguiente fragmento de código, Emb.vbs, también se muestra el uso de la tabla Storages para agregar una transformación insertada y se usa con Windows Script Host.
'Emb.vbs. Argument(0) is the original database. Argument(1) is the
' path to the transform file. Argument(2) is the name of the storage.
'
Option Explicit
' Check arguments
If WScript.Arguments.Count < 2 Then
WScript.Echo "Usage is emb.vbs [original database] [transform] [storage name]"
WScript.Quit(1)
End If
' Connect to Windows Installer object
On Error Resume Next
Dim installer : Set installer = Nothing
Set installer = Wscript.CreateObject("WindowsInstaller.Installer")
' Evaluate command-line arguments and set open and update modes
Dim databasePath: databasePath = Wscript.Arguments(0)
Dim importPath : importPath = Wscript.Arguments(1)
Dim storageName : storageName = Wscript.Arguments(2)
' Open database and create a view on the _Storages table
Dim sqlQuery : sqlQuery = "SELECT `Name`,`Data` FROM _Storages"
Dim database : Set database = installer.OpenDatabase(databasePath, 1)
Dim view : Set view = database.OpenView(sqlQuery)
'Create and Insert the row.
Dim record : Set record = installer.CreateRecord(2)
record.StringData(1) = storageName
view.Execute record
'Insert storage - copy data into stream
record.SetStream 2, importPath
view.Modify 3, record
database.Commit
Set view = Nothing
Set database = Nothing
Para agregar un almacenamiento denominado MNPtrans1 a MNP2000.msi y que contenga la transformación que creó en Agregar información de resumen a la transformación de personalización, cambie los directorios a la carpeta que contiene Emb.vbs, la base de datos original y, a continuación, especifique la siguiente línea de comandos.
Cscript.exe Emb.vbs MNP2000.msi MNPtrans.mst MNPtrans1
De esta forma se completa el ejemplo de transformación de personalización. Después de insertar la transformación en MNPtrans.mst, la transformación siempre está disponible con el paquete de instalación. No es necesario que el archivo MNPtrans.mst se encuentre en el origen para aplicar la transformación.
Quite MNPtrans.mst de la carpeta que contiene el paquete de instalación de ejemplo. Haga clic en el icono de MNP2000.msi para iniciar una instalación o use la siguiente línea de comandos.
msiexec /i MNP2000.msi
Tenga en cuenta que de esta forma se instala el producto sin las personalizaciones. Para instalarlo con las personalizaciones, especifique la siguiente línea de comandos. Use dos puntos para indicar que el valor de la propiedad TRANSFORMS hace referencia a una transformación insertada.
msiexec /i MNP2000.msi TRANSFORMS=:MNPtrans1
Tenga en cuenta que la característica Gate no aparece en el árbol de selección de características y que los componentes de la misma no están instalados incluso si un tipo completo de instalación está seleccionado en la interfaz de usuario.
Ejemplo siguiente
Ejemplo de aplicación de revisiones de actualización pequeña