Delen via


Aanpassingstransformaties insluiten als subopslag

U kunt de aanpassingstransformatie opslaan in een opslag van het Windows Installer-pakket om ervoor te zorgen dat de transformatie altijd beschikbaar is wanneer het installatiepakket beschikbaar is. Zie Ingesloten transformaties. Een voorbeeld hiervan is beschikbaar in de Windows Installer SDK als het hulpprogramma WiSubStg.vbs. Het volgende codefragment, Emb.vbs, illustreert ook het gebruik van de tabel Storages om een ingesloten transformatie toe te voegen en is bedoeld voor gebruik met 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

Als u een opslag met de naam MNPtrans1 wilt toevoegen aan MNP2000.msi, en de transformatie die u hebt gemaakt in Samenvattingsinformatie toevoegen aan aanpassingstransformbevat, navigeert u naar de map met Emb.vbs, de oorspronkelijke database en het transformatiebestand. Voer vervolgens de volgende opdrachtregel in.

Cscript.exe Emb.vbs MNP2000.msi MNPtrans.mst MNPtrans1

Hiermee wordt het voorbeeld van de aanpassingstransformatie voltooid. Nadat de transformatie in MNPtrans.mst is ingesloten, is de transformatie altijd beschikbaar met het installatiepakket. Het bestand MNPtrans.mst hoeft zich niet in de bron te bevinden om de transformatie toe te passen.

Verwijder MNPtrans.mst uit de map met het voorbeeldinstallatiepakket. Klik op het pictogram MNP2000.msi om een installatie te starten of gebruik de volgende opdrachtregel.

msiexec /i MNP2000.msi

Houd er rekening mee dat hiermee het product wordt geïnstalleerd zonder de aanpassingen. Als u wilt installeren met de aanpassingen, voert u de volgende opdrachtregel in. Gebruik een dubbele punt om aan te geven dat de waarde van de TRANSFORMS Eigenschap verwijst naar een ingesloten transformatie.

msiexec /i MNP2000.msi TRANSFORMS=:MNPtrans1

Houd er rekening mee dat de gate-functie niet wordt weergegeven in de functieselectiestructuur en dat de onderdelen van de gatefunctie niet zijn geïnstalleerd, zelfs niet als er een volledig type installatie is geselecteerd in de gebruikersinterface.

Volgend voorbeeld

voorbeeld van een patch voor kleine updates