Внедрение преобразований настройки в качестве подчиненного хранилища
Преобразование настройки можно сохранить в хранилище пакета установщика Windows, чтобы гарантировать, что преобразование всегда будет доступно при наличии пакета установки. См. раздел Внедренные преобразования. Пример этого приведен в пакете SDK установщика Windows в качестве служебной WiSubStg.vbs. В следующем фрагменте, Emb.vbs, также показано использование таблицы Storages для добавления внедренного преобразования и предназначен для использования с узлом сценариев 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
Чтобы добавить хранилище с именем MNPtrans1 в MNP2000.msi и содержащее преобразование, созданное в разделе Добавление сводной информации в преобразование настройки, измените каталоги в папку, содержащую Emb.vbs, исходную базу данных и файл преобразования, затем введите следующую командную строку.
Cscript.exe Emb.vbs MNP2000.msi MNPtrans.mst MNPtrans1
На этом завершается пример преобразования настройки. После внедрения преобразования в MNPtrans.mst преобразование всегда доступно в пакете установки. Файл MNPtrans.mst не обязательно должен находиться в источнике для применения преобразования.
Удалите MNPtrans.mst из папки, содержащей пример пакета установки. Щелкните значок MNP2000.msi, чтобы запустить установку или использовать следующую командную строку.
msiexec /i MNP2000.msi
Обратите внимание, что при этом продукт устанавливается без настроек. Чтобы выполнить установку с настройками, введите следующую командную строку. Используйте двоеточие, чтобы указать, что значение свойства TRANSFORMS ссылается на внедренное преобразование.
msiexec /i MNP2000.msi TRANSFORMS=:MNPtrans1
Обратите внимание, что компонент Gate не отображается в дереве выбора компонентов и что компоненты компонента Gate не устанавливаются, даже если в пользовательском интерфейсе выбрано значение Полный тип установки.
Следующий пример
Пример исправления небольшого обновления