I am using VisualStudio2005 and a vdproj to create a simple MSI file. I need to pass in the REINSTALLMODE property when I launch it.
I know this can be done via command line, like so:
msiexec.exe /i foo.msi REINSTALLMODE=amus
However, if a user chooses to click the msi directly (launching the wizard), the property is not passed. Is it possible to do this via the VS and vdproj?
Some options I've investigated:
Thanks for any advice.
I found a more automated way to do this.
Create a script named add_reinstall_prop.vbs(example) with the folowing:
set objArgs = WScript.Arguments
set o_installer = CreateObject("WindowsInstaller.Installer")
set o_database = o_Installer.OpenDatabase(objArgs(0), 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
Add a post-build event to your setup project calling the script with the following:
add_reinstall_prop.vbs $(BuiltOuputPath)
This will automatically add the desired entry to the built MSI. You can then check it with Orca to see the entry is now added automatically after build.
Sadly, I can't find a way to set other MSI properties right in VStudio.
Nonetheless, one method that should work is this:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With