PDA

View Full Version : IS7 doesn't use the MSI database when repairing and removing a standard project setup



cdisdero
04-12-2002, 06:49 PM
Through some experimentation I've discovered what appears to be a serious bug in IS7. If I install a standard project, and then say make a change directly to the MSI database info about what files are installed (say by using RTPatch 6.5 to add a new file to my product code), when I rerun the IS7 in maintenance mode and try to remove the installed program, it removes only the files it installed and ignores the file that was added properly to the File Table/Feature tables in the MSI database!

It is as if it is using it's own list (probably that pesky .ilg file) and not the one that everyone else uses (namely the MSI database). Is this really true? If so, any plans to fix this soon (maybe in 7.03), so people like me can use programs like RTPatch 6.5?

If not, how can I programmatically update the log file from my setup script?

Joshua
04-15-2002, 01:14 PM
This is not a bug, but rather a function of the MSI engine. When an install is performed, the MSI package is cached in a location on the target machine. Therefore even if you modify YOUR copy of the MSI package and run it in Maintenance Mode, it will still use the cached copy of the MSI file.

You can pass a /v to msiexec.exe to recache the MSI package so your new files are included.

cdisdero
04-17-2002, 12:02 PM
As far as I can tell, there is no /v parameter to msiexec.exe. The /v parameter is an argument to setup.exe which allows you to pass arguments to msiexec.exe.

So what command line parameter can I pass to do this cache updating to msiexec.exe. I don't see this documented anywhere in the msi help.