Unregister Library issue
Posted: Wed Nov 22, 2006 7:57 am
Hi,
First of all, I'm evaluating InstallAware 6.06 before buying it, to replace my (buggy) InstallShield 7.04. So far, I'm pleased with it (even wrote some extension plug-ins), but I have some questions:
For my installer, I need to register some COM libraries, and I use the command Register Library (after Apply Install) for this, and it works fine.
Now, when I uninstall the app, I unregister the COM DLL's with the command Unregister Library, right befor Apply Uninstall. When the uninstall is complete, the COM DLL's are still there...
To narrow this down, I logged the uninstall (/l=log.txt), and it appears that the installer itself is holding the COM DLL's open, and only can remove it on reboot. And indeed, after a reboot, they are gone. Strange thing is, that the variable SUCCESS is set to COMPLETE, and not to REBOOT, so the user isn't notified to reboot the machine...
I know for sure that the registered DLL's are not used by any other application, so their ref count is 0 after the Unregister Library command, and therefore they should be deletable.
Now, I replaced the Unregister Library command with a Run Program regsvr32 <com dll> /s /u, and this works perfectly, the files are removed after uninstall, and the registry is cleaned as well.
I could use this method, but I prefer the clean method of Uninstall Library. Another solution is to create a plugin which does the unreg, but I figure Unregister Library have to work properly.
Anybody suggestions, idea's?
ps. I test everything on a clean WinXP install on VMWare
First of all, I'm evaluating InstallAware 6.06 before buying it, to replace my (buggy) InstallShield 7.04. So far, I'm pleased with it (even wrote some extension plug-ins), but I have some questions:
For my installer, I need to register some COM libraries, and I use the command Register Library (after Apply Install) for this, and it works fine.
Now, when I uninstall the app, I unregister the COM DLL's with the command Unregister Library, right befor Apply Uninstall. When the uninstall is complete, the COM DLL's are still there...
To narrow this down, I logged the uninstall (/l=log.txt), and it appears that the installer itself is holding the COM DLL's open, and only can remove it on reboot. And indeed, after a reboot, they are gone. Strange thing is, that the variable SUCCESS is set to COMPLETE, and not to REBOOT, so the user isn't notified to reboot the machine...
I know for sure that the registered DLL's are not used by any other application, so their ref count is 0 after the Unregister Library command, and therefore they should be deletable.
Now, I replaced the Unregister Library command with a Run Program regsvr32 <com dll> /s /u, and this works perfectly, the files are removed after uninstall, and the registry is cleaned as well.
I could use this method, but I prefer the clean method of Uninstall Library. Another solution is to create a plugin which does the unreg, but I figure Unregister Library have to work properly.
Anybody suggestions, idea's?
ps. I test everything on a clean WinXP install on VMWare