Testing something like this is tricky. I test other software, and when messing with windows system files, it can get ugly...thankfully it wasn't me building the installers (IS...uggh), but we did kill a few systems!
Anyhoo, I'm obviously trying to do this because I AM intending to use it, and test it of course, so I'll give it a go.
What I'm essentially trying to do is build a macro that will handle all file installations, by checking versions, or file dates.
I think ultimately this would be best handled in 2 separate macros, but I'm also thinking, if I can't get a version of the file, I'd like to fallback and check the date of the file.
Now, its getting tricky again, and also because, if I'm replacing these system files, I want to back them up, so when I uninstall I can restore the system to its original state.
I've built the backup stuff into the macro already - another define (BACKUP or NOT) - the files goto $INSTDIR\install_backup if they are replaced.
So now I need a macro that will work for the uninstaller, which will firstly, check if the file that replaced the original during the install, is still the same file, and not something installed by another app since....if so, then dont restore.
Then copy the files back over their replacements setting all the reg stuff and reboot flags.
It's kinda like building a wrapper for installing and uninstalling files, safely, and ensuring you only install what you need...handy for online installs.
BUT, when you think like that, it would be much more sensible to do to all the version/date checking first, write that info to an ini file, then check the versions of all the existing files (if any) from the INI, against another INI, containing all the info of the files your installing. This way, if the installer IS an online installer (or not), all the operations can be grouped: FileCheck, File Copy/download, UnReg(if needed), UnRegShared(if needed), backup, FileRename, Reg(if needed), RegShared(if needed), etc. and then in reverse for the uninstaller :-).
Don't ya just love Saturday nights!! :-(
I've attached what I have for now...if anyone has ideas for the above-mentioned, or the attached, please don't hold back!