需要一种方法将一个属性添加到VS2010中安装项目的msi属性表中

Isa*_*ger 2 windows-installer visual-studio

每次我构建它时,我一直在使用Orca手动将属性"REINSTALLMODE"值"amus"添加到msi属性表中.

我厌倦了这一点.我调查了Wix,但到目前为止,我认为它不值得学习它的麻烦/切换到它,即使它将解决这个问题.有没有办法在构建完成后自动将这一个属性插入到msi中?优选地,它将仅使用vanilla visual studio 2010而不依赖于第三方程序或系统环境变量.

有什么想法吗?

谢谢,

艾萨克

Han*_*966 5

使用vbscript

更改现有财产

set o_installer = CreateObject("WindowsInstaller.Installer")
set o_database = o_Installer.OpenDatabase("path_to_your_msi", 1)
s_SQL = "SELECT Property, Value FROM Property Where Property = 'ReinstallMode'"
Set o_MSIView = o_DataBase.OpenView(s_SQL)
o_MSIView.Execute
Set o_MSIRecord = o_MSIView.Fetch
o_MSIRecord.StringData(2) = "amus"
o_MSIView.Modify 2, o_MSIRecord
o_DataBase.Commit
Run Code Online (Sandbox Code Playgroud)

添加新属性

set o_installer = CreateObject("WindowsInstaller.Installer")
set o_database = o_Installer.OpenDatabase("path_to_your_msi", 1)
s_SQL = "INSERT INTO Property (Property, Value) Values( 'ReinstallMode', 'amus')"
Set o_MSIView = o_DataBase.OpenView( s_SQL)
o_MSIView.Execute
o_DataBase.Commit
Run Code Online (Sandbox Code Playgroud)