Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Using COM objects during uninstall


3 replies to this topic

joephayes

joephayes
  • Members
  • 17 posts

Posted 06 October 2003 - 20:50

Hi all,

Has anyone had any sucsess using COM objects that they install during uninstallation? When I uninstall, my InstallScript code creates a reference to an installed COM component, uses it and then explicitly de-references the object (using "set o = nothing;"). The uninstall continues running without error but the file that houses the COM object is left behind and the uninstall asks the user to reboot.

The custom action that runs the InstallScript code is set as a deferred action and is sequenced before the "SelfUnRegModules" standard action.

Thanks in advance,

J

paracha3

paracha3
  • Members
  • 19 posts

Posted 06 October 2003 - 23:59

I have seen something similar happening with me. The reason that figured out is that when msiexec calls your CA, it creates a separate thread and loads your COM DLL/OCX to run the CA. But it doesn't unload that even though you do Set obj=Nothing.
It only deletes the file when you either finish running the installer or may be after reboot. This doesn't happen with CA of type 1.

I ended up writing CA in C++ rather than VB.

paracha3

Zweitze

Zweitze
  • Full Members
  • 522 posts

Posted 07 October 2003 - 08:12

Do not use a deferred action, it will be executed during InstallFinalize, after all files etc. are moved.
Instead, use a normal action, schedule it before InstallValidate. You may need to do something about rollbacks.

joephayes

joephayes
  • Members
  • 17 posts

Posted 22 October 2003 - 20:08

I rewrote the custom action as a C DLL. Now it works like a charm.

Thanks for the commentts!