Partager via


Incorporation de transformations de personnalisation en tant que sous-stockage

Vous pouvez stocker la transformation de personnalisation dans un stockage du package du programme d’installation Windows pour garantir que la transformation est toujours disponible lorsque le package d’installation est disponible. Consultez Transformations incorporées. Vous en trouverez un exemple dans le Kit de développement logiciel (SDK) du programme d’installation Windows en tant qu’utilitaire WiSubStg.vbs. L’extrait de code suivant, Emb.vbs, illustre également l’utilisation de la table Stockages pour ajouter une transformation incorporée et est destiné à être utilisé avec l’hôte de script Windows.

'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

Pour ajouter un stockage nommé MNPtrans1 à MNP2000.msi et contenant la transformation que vous avez créée dans Ajout d’informations récapitulatives à la transformation de personnalisation, remplacez les répertoires par le dossier contenant Emb.vbs, la base de données d’origine et le fichier de transformation, puis entrez la ligne de commande suivante.

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

Ceci termine l’exemple de transformation de personnalisation. Après avoir incorporé la transformation dans MNPtrans.mst, celle-ci est toujours disponible avec le package d’installation. Le fichier MNPtrans.mst n’a pas besoin d’être situé à la source pour appliquer la transformation.

Supprimez MNPtrans.mst du dossier contenant l’exemple de package d’installation. Cliquez sur l’icône MNP2000.msi pour lancer une installation ou utilisez la ligne de commande suivante.

msiexec /i MNP2000.msi

Notez que cela installe le produit sans les personnalisations. Pour installer avec la personnalisation, entrez la ligne de commande suivante. Utilisez les deux-points pour indiquer que la valeur de la propriété TRANSFORMS fait référence à une transformation incorporée.

msiexec /i MNP2000.msi TRANSFORMS=:MNPtrans1

Notez que la fonctionnalité Porte n’apparaît pas dans l’arborescence de sélection des fonctionnalités et ses composants ne sont pas installés même si un type d’installation Complet est sélectionné dans l’interface utilisateur.

Exemple suivant

Exemple d’un petit correctif de mise à jour