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

".NET COM Interop" and regasm problem


1 reply to this topic

slescure

slescure
  • Members
  • 21 posts

Posted 23 January 2006 - 13:01

Hi,

I posted something about that a while ago but got no answer, so I just try it again since I have had no workaround until then...

We have a .NET component with some COM Interop. In it, we have overloaded the registration method to do some stuff we need to do when the component is registered or unregistered through regasm.

When I include my component with InstallShield, I select Yes for .NET COM Interop, and I was expecting that InstallShield will call regasm at the time the component is registered on the target PC. But apparently not. Why is that? What should I do to have this registration process correctly? If I execute regasm on my component by myself, everything is registered properly... But through InstallShield, the component is correctly seen in COM Interop, but our overloaded function was not called! :-(

Thanks

TonyLowrey

TonyLowrey
  • Members
  • 15 posts

Posted 02 February 2006 - 11:26

As far as I can tell IS extracts the registry information at build time so does not run regasm on the target machine. Running regasm on the target is not recommended as MSI has no way to remove this information during uninstall.

You do not say what "do some stuff" actually does. If your DLL sets up some registry items on registration then you can author in those items in the advanced pane for the component and MSI can handle the install and uninstall of these. If you manipulate files then similarly you can author in .ini or .xml edits using IS features.

Alternatively you can run regasm from a deferred custom action during the install to trigger your registration functions. This is not recommended (see above)