Внедрение кастомизированных преобразований в качестве подхранилища
Вы можете сохранить преобразование настройки в хранилище пакета установщика Windows, чтобы гарантировать, что преобразование всегда доступно при наличии пакета установки. См. внедренные преобразования. Пример этого представлен в пакете SDK установщика Windows в качестве служебной программы WiSubStg.vbs. В следующем фрагменте кода Emb.vbs также показано использование таблицы хранилищ , для добавления внедренного преобразования для использования с узлом скриптов 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 не устанавливаются, даже если в пользовательском интерфейсе выбран полный тип установки.
Следующий пример
пример небольшого исправления обновления