Wednesday, 31 October 2012
Tuesday, 30 October 2012
Monday, 29 October 2012
Patch Installation error
I ran into a sticky situation while trying to apply a second patch to an application but failed, instead getting an error. The actual scenario was that my product was version 2.0 which was already patched with version 2.1, applying patch 2.2 failed but when patched directly with 2.2, it upgraded successfully.
This is the upgrade error I received while patching;
"The upgrade patch cannot be installed by the Windows Installer service because the program to be upgraded may be missing, or the upgrade patch may update a different version of the program. Verify that the program to be updated exists on your computer and that you have the correct upgrade patch."
Notice the error number is missing, that a fail to installshield.
Among other,s the reason why this error occurs is because the application to upgrade is either not installed, the Upgrade code has changed or the previous patch Package code may be similar to the new patch. In my case I discovered that the patch 2.1 was somehow changing the upgrade code making it impossible for the 2.2 patch to install.
My solution to this issue was to change the Transform Filter Settings on the previous packages page. I changed the ‘Match Upgrade Code’ setting to “NO” and left the “Match Product Code” setting as ‘YES’ this would make sure that the patch only upgrades the product version it is supposed to leaving out the upgrade code validation. This may be a crude method but it fixed my issue in the nick of time.
Here is an image to demonstrate.
Thursday, 11 October 2012
How to fix error 1911- Could not register type library for file.
I landed into problems when a patch I had created failed during installation and gave the error “Error 1911. Could not register type library for file x. Contact your support personnel”. This was not the first time I have dealt with the same installation error but this time it was different because it occurred on a patch.
Here are some tip on how you can fix this problem:
This error is likely to occur if the installation package extracts the wrong COM information i.e an old library version could be registered at build time. The fix to this is to clean the build machine, this involves using Regclean or any other such tool to remove registry information which could be out-dated or from an older version. Replace the components, register them afresh and redo the build.
If cleaning the build doesn't work, The second approach would be to check if there are double entries in the Typelib table in direct editor. If there is more than one entry, delete the one with the wrong Lib ID. You could also remove the dll from the project, restart the project then re-add the dll again otherwise completely remove the library file if you do not need register the file.
When dealing with a patch, maybe you should try finding out if the developer had broken the components compatibility. Patching components with broken binary compatibility can be a real pain. If true, ask the developer to restore compatibility and recompile the components.