HOWTO: Register a certain COM Object before the others
Posted 02 March 2001 - 19:07
In my Setup i need to register a certain COM Component (mssnapr.dll) before the others to work properly.
Wich is the best way to do this?
Im still playing with it and trying do get it done with a custom action that calls another .msi. Wich is the best place in the Sequence to call this external .msi ?
Posted 04 March 2001 - 20:30
Posted 05 March 2001 - 11:28
in the manual ms tells you to register the library on a target system before you register your snap in.
so far, this can be done with "extract at build" option of install shield without problems.
i dont understand why but my snap in dll itself only can be registred useing "self-register".
therefore i need to understand how to tweek the sqeunce to fit my needs :)
Posted 05 March 2001 - 14:09
As an alternative you could try to find out why IPWI can't extract the self registration information, or enter the registry data manually into the respective component settings (or import a .reg file)
Posted 07 March 2001 - 17:25
Posted 08 March 2001 - 12:00
as stefan mentioned the self-reg order can be organized as described in the MSI help. (good hint, thnx!)
concerning my problem with the incompatiblity of a dll with the "advanced settings" registration mode of ISPWI:
i cannot agree your suggestion that this is a general problem with dlls written in VB - ive successfully registred a couple of classes written in VB this way.
it seems to be a specific problem with MMC snap-in dlls written in vb useing the Visual Basic Snap-in Designer v1.0 from MS Platform SDK.
however, its the only dll where i had this problem.
happy setup!
Posted 08 March 2001 - 14:26
In IPWI 2.03 this problem should be solved (according to the release notes)
Posted 08 March 2001 - 14:58
So if anyone can tell me exactly how they do the extraction of the registry data, I can start looking at possible problems with our dll's. I get the impression that it depends to a certain degree on the OS you are running on the machine that builds the setup. In my case it's WindowsNT 4.0 SP1 with Visual Studio SP4 and IE4.0SP2. And also on the data already present in the registry.
I'll post my conclusions when I resolved the issues.
thanks,
Ad
Posted 08 March 2001 - 18:29
Posted 08 March 2001 - 18:42
I tested a few things today and came to the same conclusion that IS indeed registers the dll on your machine. But does not give you the option to unregister the dll again. In my case this gave me problems because we are still changing a lot of the com interfaces, thus changing our registering info. I have created batch files that unregister all my dll's and exe's prior to building my setup. If I don't do this IS takes the wrong information out of the registry and puts this wrongly in my installation.
So to conclude this thread: if you have a problem with registry data extraction at build time, make sure your registry is clean before doing the build.
Posted 09 March 2001 - 22:37