生成自定义转换

可以使用 MsiDatabaseGenerateTransformDatabase 对象GenerateTransform 方法生成转换文件。 Windows Installer SDK 中以实用工具 WiGenXfm.vbs 的形式提供了这方面的示例。 下面的代码片段 Gen.vbs 也说明了 GenerateTransform 方法的使用,并用于 Windows 脚本宿主。

'Gen.vbs. Argument(0) is the original database. Argument(1) is the
'    customized database. Argument(2) is the transform file.
 
Option Explicit

' Check arguments
If WScript.Arguments.Count < 2 Then
    WScript.Echo "Usage is gen.vbs [original database] [customized database] [transform file]"
    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") 
' Open databases
Dim database1 : Set database1 = 
    installer.OpenDatabase(Wscript.Arguments(0), 0) 
Dim database2 : Set database2 = 
    installer.OpenDatabase(Wscript.Arguments(1), 0) 
' Generate transform
Dim transform : transform = Database2.GenerateTransform(Database1,
    Wscript.Arguments(2))

若要从原始 MNP2000.msi 数据库以及在自定义原始数据库中修改的 MNP2000t.msi 数据库生成转换文件 MNPtrans.mst,请将目录更改为包含 Gen.vbs、原始数据库和更新的安装程序数据库的文件夹,然后输入以下命令行。

Cscript.exe Gen.vbs MNP2000.msi MNP2000t.msi MNPtrans.mst

继续