IFS-Dragon
Posts: 19
Joined: Thu Apr 17, 2008 11:26 am

creating patches

Hi,

We provide a banking software product that is made up of sepearte windows application programs and dynamic link libraries. Its bound together into one msi using AdvancedInstaller This is great and is deployed very successfully to our clients.

However, like all software not all is perfect and therefore programs and libraries need to be fixed or modified in some way. Before AI was used we just put the changes into zip files to be sent to our clients and they would just copy them into the application folder.

What we would like to do is the following (hope someone understands this)

1. Have a base/core install ie full MSI installation. Say version 1.0.0 where 1 is the main product version, the 2nd 0 is the sub product and the 3rd 0 being the service pack number

2. Send out fixes (aka hot-fixes or patches) to our clients on a need to have basis. The registry or some other media to show what hot-fixes have been installed so, we as suppliers, can support their version of the software. Not all hot-fixes go out to all our clients. So for example client1 could have core plus hot-fix 1 and hot-fix 4. Client2 would have core plus hot fix 3. Client3 would have core plus hot-fix 2 & 3 . That is to say that each hot-fix is totally independent of each other hot-fixes and may contain the same programs. :?

3. Also a client may have already installed hot-fix3 but now requires the programs fixed in hot-fix1. The client doesn't want to uninstall later hot fixes but just install hot-fix1. Problem here could be what if hot-fix 1 contains an older version of a dll or exe. The install is to only install new versions of the program not older ones.

4. if possible to uninstall hot-fixes an go back to the previous exe's or dll's

5. At the end of a set period say 6 months we collate all the hot-fixes and put them into the next full release of the software say version 1.0.1 and the whole cycle starts again with the next lot of fixes.

I have tried to create updates/patches but I found that our clients have to install previous updates in order to get their fix. This unfortunately is not acceptable as 1. Clients dont have the resources to test all new programs. ie they only want to test their own fixed program & not any others as it doesn't effect them 2. the comparison between versions takes a long time just to find that program A is now different and 3. The update just to install a new version of program A takes a good 10 mins or so.

My apoligies for the long windeness of the above problem so I do hope some can give me advice on this ASAP.

Regards

Ifs-dragon
Cosmin
Posts: 5797
Joined: Tue Jul 10, 2007 6:39 pm
Contact: Website

Re: creating patches

Hi,

What you need can be done by using a different MSI package for each hotfix. Each package will include only the updated files and can be distributed as an update. Each update can use a specific installed detection criteria to determine if the user can install it or not.

These MSI packages can use searches to find the installation folder (for example a registry value created by the core package). Also, they can use a basic UI so the user cannot change the installation folder (or you can remove "FolderDlg" from the "Dialogs" page). Since they are MSI packages, you can configure hotfixes to upgrade one another. Therefore, you can have a hotfix which can upgrade another hotfix.

During a hotfix uninstall, the files installed by it will be removed. This problem can be handled in two ways:
1) Use custom actions to backup the original files before the update and restore them after the update uninstall. Please note that the User Guide contains the Preserve File on Install how-to which may help you.
2) Use a custom action which triggers a repair of the original package after the update is uninstalled. For this you can try using a C++ DLL custom action which calls the MsiReinstallProduct function.

When a new major version is released, you can use the Upgrades page to make sure that it will automatically upgrade the old version with all possible hotfixes.

Regards,
Cosmin
Cosmin Pirvu - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube
IFS-Dragon
Posts: 19
Joined: Thu Apr 17, 2008 11:26 am

Re: creating patches

Thanks Cosmin.
I will give it a go

Return to “Common Problems”