Phil, Thanks for your tip. Here is what I did to solve the problem:
1) As Phil suggested I ran RegSpy2 and gathered all the registry information from the COM Executable and saved it in a .reg file. 2) I used Tallow option to generate a wix file by passing in the .reg file. 3) Tallow uses <Registry> instead of the newer <RegistryKey> and <RegistryValue> tags. The older <Registry> key logic causes primary key errors in the Registry table. Hence I did a very fast search and replace of the older keys into the newer format. For example, part of the final output looks like this - <RegistryKey Root="HKCR" Key="Interface\{41A7D761-6018-11CF-9016-00AA0068841E}" Action="createAndRemoveOnUninstall"> <RegistryValue Value="DataObjectFiles" Type="string" /> </RegistryKey> <RegistryKey Root="HKCR" Key="Interface\{41A7D761-6018-11CF-9016-00AA0068841E}\ProxyStubClsid" Action="createAndRemoveOnUninstall"> <RegistryValue Value="{00020424-0000-0000-C000-000000000046}" Type="string" /> </RegistryKey> <RegistryKey Root="HKCR" Key="Interface\{41A7D761-6018-11CF-9016-00AA0068841E}\ProxyStubClsid32" Action="createAndRemoveOnUninstall"> <RegistryValue Value="{00020424-0000-0000-C000-000000000046}" Type="string" /> </RegistryKey> <RegistryKey Root="HKCR" Key="Interface\{41A7D761-6018-11CF-9016-00AA0068841E}\TypeLib" Action="createAndRemoveOnUninstall"> <RegistryValue Value="{EA544A21-C82D-11D1-A3E4-00A0C90AEA82}" Type="string" /> <RegistryValue Name="Version" Value="6.0" Type="string" /> </RegistryKey> 4) Next I replaced hard coded file paths to MSI friendly ones like [INSTALLDIR], [SystemFolder]\MSVBVM60.DLL\3 etc. 5) I included the new component fragment where it is necessary and linked with the feature. Thanks a lot for all your help. -Arun -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Wilson, Phil Sent: 2008-Oct-09 Thu 12:49 PM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Heat and COM executable registry extraction If you scroll down here: http://installsite.org/pages/en/msi/tips.htm to RegSpy you'll find the source for a tool that works with Dlls and exe COM servers. It uses the registry overrides to redirect the registration entries. Exe servers are handled by running them with /regserver suspended, then injecting registry redirection, then resuming them to do the registration to the redirected registry location. Someone updated it to include typelib information too, that's what RegSpy2 is. Phil Wilson -----Original Message----- From: Arunkumar Viswanathan [mailto:[EMAIL PROTECTED] Sent: Thursday, October 09, 2008 4:32 AM To: 'General discussion for Windows Installer XML toolset.' Subject: Re: [WiX-users] Heat and COM executable registry extraction Kamil & Michael, thanks a lot for the information you have provided. Kamil, I am very interested in trying out your tool. I can use Oleview and extract the threading model and other default information. Do post details on where to get your tool and how to use it. Thanks -Arun -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Kamil Mierzejewski Sent: 2008-Oct-09 Thu 6:01 AM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Heat and COM executable registry extraction Hi, I also encountered this problem. My solution was to design a special tool which scans .tlb files and generates WiX code from them. details in my comment here: https://sourceforge.net/tracker/?func=detail&atid=642717&aid=1468663&group_i d=105970 The tools assumes that classes defined in the tlb are implemented by the module that holds it. Of course class definitions in tlb lack some information needed for registration (threading model, progid, etc). The tool has two options of taking care of this: 1. By passing default threading model, which is assigned to every class in the tlb. 2. By analyzing custom attributes of that classes (this allows defining threading model and other attributes as custom attributes in an idl file). The tool can scan .tlb files as well as modules holding tlb resources, no matter if it's dll or exe. I've been using it for a long time now without any problems. If anyone is interested, I can share my work. Kamil [EMAIL PROTECTED] writes: > Hi Arun, > > I've been experiencing the same kind of problems and I posted a question about it recently. See > the http://n2.nabble.com/Heat-problem-harvesting-class-from-type-library-td13035 54.html > > I believe the problem is that for executables (.exe out-of-process COM Servers) the WiX heat tool > can only harvest the basic type library-information (linked into it), but it cannot harvest the > registration information for the CLSID and ProgID's because that registration typically is > hard-coded into the executable (and which normally is executed when it is registreded with a > "file.exe /regserver" call). > > I believe that heat.exe is only harvesting the registry information after a call similar to > "regsvr32 file.dll" (i.e. the call to DllRegister expected to be found in the in-process COM > server's in dlls). Can someone confirm this? > > If heat.exe also would call what corresponds to "file.exe /regserver" then it would probably also > work for .exe out-of-process COM Servers. However as far as I know .exe's can choose to register > differently (not supporting the /regserver), in which case heat would not be able to harvest the > information. > > What I ended up doing was to manually add the missing information into my WiX source file (.wxs). > > Hope this info helps, > /Michael > > > > > information > > See > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's challenge > Build the coolest Linux based applications with Moblin SDK & win great prizes > Grand prize is a trip for two to an Open Source event anywhere in the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > _______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users > ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users