Yeah, I agree that heat will produce a lot of RegistryValue
elements that are not related to the DLL being looked at (like you said,
usually VB Runtime related). Which is fine since heat shouldn't be used
for automated builds etc, and the output should be hand-tooled/cleaned
up. But I would expect it to create the TypeLibs for the DLL.

I am using heat in an automated fashion... I have written a MSBuild task
that invokes heat and then opens the XML file and tidies up the XML
structure. However, your comments are making me go back and check the
output more carefully.

        What also struck me as odd was that heat is generating Class and
Interface elements as Component elements as well as File elements, e.g.:
         
        <Component>
            <Class>
                <ProgID />
            </Class>
        
            <Class>
                <ProgID />
            </Class>
             <File>
                <Class>
                    <ProgID />
                </Class>
            </File>
            <Interface />
            <Interface />
            <Interface />
            ...
            <RegistryValue />
            <RegistryValue />
            <RegistryValue />
            ...
        </Component>
         
        And these Class elements were directly related to the DLL being
looked at. In the above instance, there was no TypeLib element at all...
         
        Heat will generate TypeLibs for some of the other DLLs.
         
        Any suggestions? 

No suggestions really. I've looked at the output for some of my DLLs and
OCXs and there are some entries outside the File element that are
related, and they are all of this kind of form:

        <RegistryValue Root="HKCR"
Key="CLSID\{5406F822-32BA-4AC7-B355-AD5E8DC28DEC}\Control" Value=""
Type="string" Action="write" />
        <RegistryValue Root="HKCR"
Key="CLSID\{5406F822-32BA-4AC7-B355-AD5E8DC28DEC}\MiscStatus\1"
Value="131473" Type="string" Action="write" />
        <RegistryValue Root="HKCR"
Key="CLSID\{5406F822-32BA-4AC7-B355-AD5E8DC28DEC}\MiscStatus" Value="0"
Type="string" Action="write" />
        <RegistryValue Root="HKCR"
Key="CLSID\{5406F822-32BA-4AC7-B355-AD5E8DC28DEC}\ToolboxBitmap32"
Value="[!controls.ocx], 30000" Type="string" Action="write" />

or <Interface> entries like this that seem to just forward to interfaces
defined inside the <File> element:

        <Interface Id="{296923CA-99E8-40B8-87E3-0BEF5FF0D67C}"
Name="dbUtils" ProxyStubClassId="{00020424-0000-0000-C000-000000000046}"
ProxyStubClassId32="{00020424-0000-0000-C000-000000000046}" />
        <RegistryValue Root="HKCR"
Key="Interface\{296923CA-99E8-40B8-87E3-0BEF5FF0D67C}\Forward"
Value="{107C147F-8A37-4E29-813D-5958F10B97CF}" Type="string"
Action="write" />

I don't see any extra <Class> elements. I need to go away and test the
installation thoroughly to see if I'm throwing away too much.
 
Cheers,
John
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to