Patch applied, files not updated
Posted 30 December 2010 - 21:46
I have read extensively here and on other sites and have now produced a patch .msp file. The ProductCode was not changed. The ProductVersion changed from 2.2.00 to 2.2.01. The ProductName changed from MyProduct 2.2 to MyProduct 2.2a RC.
When I apply the patch to a computer that already has MyProduct 2.2 installed, under Control Panel > Programs I see the Name change to MyProduct 2.2a RC, however, none of the files are updated (executable + DLLs).
I am applying the patch by either double clicking the .msp file, or running msiexec /p patch.msp. The installer then comes up with options to Repair or Remove and I choose repair - I assume this is correct?
Any pointers as to why the files are not being updated? Any suggestions would be appreciated.
Posted 03 January 2011 - 12:25
Typically, the ProductName is also used as the name of the .msi file. But in a minor update you are not allowed to change the .msi file name. So please double check your .msi file name.
Posted 04 January 2011 - 12:25
Thanks for your advice. I could not find anySELMGR errors in the log file. The file versions are bing incremented and the name of the msi file is not changed.
Reading some of the technical information on your website, alerted me to the issue of files being removed. While we don't remove files, we had relocated some MS dlls for sql ce. By leaving these files in the same place it all works nicely.
Thanks again for your help. You site is a wealth of resources when building an installer.
Posted 06 January 2011 - 07:15
We are using pfw to wrap msiexec and the .msp file to make a single file patch, with the command line options
/p MyProduct2.2a.msp /Lime MyProduct2.2a.log REINSTALL=ALL REINSTALLMODE=omus
- I am wondering if there is a recommended option to msiexec which will just allow it to proceed with the repair, using the .msp file?
Posted 06 January 2011 - 17:00
If that doesn't help double check the conditions on the MaintenanceWelcome and PatchWelcome dialogs. They may require some adjustment, especially if your project was created some time ago in a previous version of InstallShield. Tip: create a new test project and look at the default conditions there.
Posted 06 January 2011 - 20:29
Thanks for the quick reply. I previously was not using REINSTALL=ALL REINSTALLMODE=omus on the command line but still got the repair / remove dialog - so this is not the answer.
I was hoping there was a simple way to control this with an option to msiexec - but I guess you are indicating that is not the case?
Failing that I will have to look at those dialogs, but my previous experience has been that messing with the dialog is not trivial and takes lots of time.
Our project was not built with instalshield, it is a simple vs setup project.
Any further advice would be appreciated.
Posted 07 January 2011 - 10:55
|Our project was not built with instalshield, it is a simple vs setup project.|
Since VS Setup projects don't support patches by default I guess there's no such thing as a "Patch Welcome" dialog. So this may simply be the intended behaviour.
I don't think you can ajust the dialog conditions in VS (except by post-processing the .msi file). This is one of the many limitations in VS.
BTW Which dialog would you prefer to see?
Posted 07 January 2011 - 20:56
Thanks again for all your advice. In fact we found this was solved quite easily with some investigation of the msiexec command line options. The reference page wasn't all that clear, so we had to do some trial and error. The command line we are now using is
msiexec /p MyProduct.msp /Lime MyProduct.log /qb+
This performs the patch automatically, then simply pops up a complete dialog "MyProduct2.2a Setup completed successfully". The user no longer encounters the Repair / Remove dialog. This was the behaviour we were looking for.
This is all wrapped up with PackageForTheWeb as recommended on your "Windows Installer Updates and Patches" page. We use pfw to prompt the user to continue, giving them details of the old version and new version. Pfw then just executes the above command, there are some progress dialogs, then the next dialog confirms completion. Very nice, and should be easy to use.
I hope this information might be helpful if someone else has this requirement.
Edited by ausadmin, 07 January 2011 - 20:59.