I have a VS2008 setup project, which creates a setup.msi which installs a WinForms application (C#).
Every time I update the version number, the users first have to unin
Semi-answering my own question, just for the benefit of anyone who's interested:
Firstly, I found an incredibly useful article on how MSI updates work.
Secondly, I found InstEd, a rather nice freeware MSI editor, which showed me that there was nothing obviously wrong with my MSI file. (Yes, I could use Orca instead, if I didn't mind downloading the whole Windows SDK to get it.)
Thirdly, and annoyingly, the original problem seems to have fixed itself and I can't reproduce it any more. If it comes back, and if I fix it again, I'll add a comment here!
Anyway, all this brought up a new - arguably worse - problem: the MSI now claimed to update the application but didn't actually install anything! The solution to that is as follows: