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

Reply via email to