我有一个MSI安装程序,我需要在命令行中添加或修改一个短文本属性.
这必须在构建安装程序后完成;我无法首先修改生成安装程序的过程.它也必须从脚本执行无头.
当我说“属性”时,它可能是一个MSI属性,一个在安装时写入注册表的值,或任何其他机制,可以在运行时将这个简短的自定义文本放入已安装的应用程序中.
可用于在构建后更新(或添加)属性的示例VBScript …
Option Explicit Const MSI_FILE = "myfile.msi" Dim installer,database,view Set installer = CreateObject("WindowsInstaller.Installer") Set database = installer.OpenDatabase (MSI_FILE,1) ' Update Set view = database.OpenView ("UPDATE Property SET Value = '" & myproperty & "' WHERE Property = 'MYPROPERTY'") ' .. or Add (Insert) Set view = database.OpenView ("INSERT INTO Property (Property,Value) VALUES ('MYPROPERTY','" & myproperty & "')") view.Execute Set database = Nothing Set installer = Nothing Set view = Nothing
有关更多信息,请查看Windows Installer SDK(Windows SDK的一部分),您可以从命令行使用大量示例脚本来执行各种MSI操作任务,例如,WiRunsql.vbs允许您针对MSI执行任意sql .