subthka
19th March 2009 05:14 UTC
Regarding Patch Fixes
Hi Everyone
I am trying for an installer that need to make patch fixes.
Actually I tried the plugin VPatch and followed all the necessary steps that I checked in the forum however still it was little bit hard for making that.
Please find the attachment for the installer
My problem is already i did installer(main setup for my application).Now i need to check the existing version that i installed and need to make the patch fixing for that.
The thing what i did is in one section i read the registry value and kept it in register and used as
SetOutPath registryvalue
Before installing i need to check the version that is intalled and get the path of installation and need to proceed for the patch fixing....
please help me...
advance thanks
AaronLS
22nd March 2009 02:15 UTC
If I understand correctly, it sounds like one thing you need is to be able to determine if a previous version is installed?
I would design your update to write the version to a registry value. In the logic of the update, check to see if the registry key for the version exists. If it doesn't exist, but your install path registry does exist, then you know it is an older version that is installed. If the version number registry key does exist, then just compare the existing value against the version of your updated installer to determine if the update should be installed.
I haven't really done patches quite the way you're asking for I think. The way I do patches is I just update my files and original installer, then recompile my original install. Essentially it will overwrite everything. In some places, such as configuration files, I use something like:
${IfNot} ${FileExists} "blah.ini"
;install file
That way I don't overwrite existing settings.
The reason for this is with true patches, you might have a patch to go from version 1.0 to version 1.1. You will also have one for 1.1 to 1.2. What if someone has version 1.0, and they want 1.2. Are you going to make them install 2 different patches? It will get worse as you release more patches.
So I just design my full install to overwrite everything from a previous version, so it also acts like a patch, and will work for updating any version. The logic gets a little complex, but it's easier to maintain than dealing with tons of patches. On the down side, this means updates require a full download.
If i have a hotfix, like a bug with one component and need to get someone a fix just for that, I will compile my installer with just that component. My install has about a dozen sections, and have it setup where I can compile the install with just one of those sections, so that only that component is updated when they install.