Great Work Brian!!
I just incorporated WiX 3.0.5308 into our build and harvested all 128 VB6
COM DLLs. Your fix works like a charm:
[exec] heat.exe : warning HEAT5156 : Ignoring the registry key
'Interface\{F3DB7AC0-A581-48C6-A973-8860578A77E1}\ProxyStubClsid/', it has
already been added to the component 'EstimationEngine.dll'. The registry key
value '{00020424-0000-0000-C000-000000000046}' will not be harvested.
Also, here are some statistics for Heat when I harvested my 128 files:
Version 3.0.4923: WiX file produced is 25540 lines, 4.7 MB
Version 3.0.5308: WiX file produced is 3794 lines, 601 KB
That's a great performance improvement!
Thanks again for all the help. Heat is definitely a rock solid tool.
Roy
Roy Abou Assaly wrote:
>
> I have filed the following bug:
> https://sourceforge.net/tracker/?func=detail&atid=642714&aid=2783049&group_id=105970
> and included test cases and the binary where you can reproduce how light
> is broken on the COM VB6 WiX output from Heat from version 3.0.4923 to
> 3.0.5224.
>
> Please let me know if I can be of any help at all.
>
>
> Roy Abou Assaly wrote:
>>
>> Sorry. I'll explain the situation. I sort of cried "wolf" in the
>> beginning since I used an XSLT to massage my XML after Heat produced the
>> XML. At that point Candle wouldn't compile. That was my mistake as
>> confirmed by Brian and yourself. I fixed that error. When it came to
>> running Light to produce my merge module, these were my findings:
>>
>> In 3.0.4923 (my current build setup)
>>
>> 1. Run Heat : OK ($heat dir d:\foo -svb6 -sfrag -suid -gg -our
>> PrismShell.wxs)
>> 2. Run Candle: ERROR:
>> [exec] D:\Builds\PRISM XP\Build
>> 11.51.0000\Bin\PrismShell.wxs(180) : error CNDL0010 : The Class/@Server
>> attribute was not found; it is required.
>>
>> Fixed by running a custom XSLT that added the Class/@Server attribute.
>>
>> 3. Run Light: OK (PrismShell.msm produced and later incorporated into an
>> MSI).
>>
>> In 3.0.5217 and in 3.0.5224 (I'm trying to upgrade to the latest version
>> of WiX)
>>
>> 1. Run Heat: OK ($heat dir d:\foo -svb6 -sfrag -suid -gg -our
>> PrismShell.wxs)
>> 2. Run Candle: OK
>> 3. Run Light: Error:
>>
>> [exec] Microsoft (R) Windows Installer Xml Linker version 3.0.5217.0
>> [exec] Copyright (C) Microsoft Corporation. All rights reserved.
>> [exec]
>> [exec] Updating file information.
>> [exec] Creating cabinet files.
>> [exec] Creating cabinet
>> 'C:\Users\assalr\AppData\Local\Temp\fkjhmoud\#MergeModule.CABinet'.
>> [exec] Generating database.
>> [exec] D:\Builds\PRISM XP\Build 11.51.0000\Bin\PrismShell.wxs(19) :
>> error LGHT0130 : The primary key
>> 'reg0387C011F3F8A22BDFC14B72466D9C9A.C7AC8538_65ED_4C2B_AE16_6291871D0918'
>> is duplicated in table 'Registry'. Please remove one of the entries or
>> rename a part of the primary key to avoid the collision.
>>
>> The WiX XML that is generating the above error looks like the same that
>> you had generated before:
>>
>> <Component Id="DisplayFridayListUI.dll"
>> Guid="{821C19F9-E65C-48D5-BF11-07F593D7839B}">
>> <File Id="DisplayFridayListUI.dll" KeyPath="yes"
>> Source="SourceDir\DisplayFridayListUI.dll">
>> <TypeLib Id="{3515D627-3FA0-490F-9330-02A73023E0C0}"
>> Description="DisplayFridayListUI" HelpDirectory="PRISMMsi" Language="0"
>> MajorVersion="1" MinorVersion="0">
>> <Class Id="{9AF8DE3E-3FFB-4F1C-AA59-3DBAB1725BB9}"
>> Context="InprocServer32"
>> Description="DisplayFridayListUI.CDisplayFridayList"
>> ThreadingModel="apartment" Version="1.0" Programmable="yes">
>> <ProgId
>> Id="DisplayFridayListUI.CDisplayFridayList"
>> Description="DisplayFridayListUI.CDisplayFridayList" />
>> </Class>
>> <Interface Id="{2D3FD2B6-AF78-4DFD-A5C9-7CE97BC4A594}"
>> Name="CDisplayFridayList"
>> ProxyStubClassId="{00020424-0000-0000-C000-000000000046}"
>> ProxyStubClassId32="{00020424-0000-0000-C000-000000000046}" />
>> </TypeLib>
>> </File>
>> <RegistryValue Root="HKCR"
>> Key="CLSID\{9AF8DE3E-3FFB-4F1C-AA59-3DBAB1725BB9}\Implemented
>> Categories\{40FC6ED5-2438-11CF-A3DB-080036F12502}" Value="" Type="string"
>> Action="write" />
>> <RegistryValue Root="HKCR"
>> Key="Interface\{2D3FD2B6-AF78-4DFD-A5C9-7CE97BC4A594}\ProxyStubClsid"
>> Value="{00020424-0000-0000-C000-000000000046}" Type="string"
>> Action="write" />
>> <RegistryValue Root="HKCR"
>> Key="Interface\{2D3FD2B6-AF78-4DFD-A5C9-7CE97BC4A594}\ProxyStubClsid32"
>> Value="{00020424-0000-0000-C000-000000000046}" Type="string"
>> Action="write" />
>> <RegistryValue Root="HKCR"
>> Key="Interface\{2D3FD2B6-AF78-4DFD-A5C9-7CE97BC4A594}"
>> Value="_CDisplayFridayList" Type="string" Action="write" />
>> </Component>
>>
>> Yes, it compiles, but it's not "linking" with Light.
>>
>> This is where I am right now. Please note that the XML that Heat
>> produces in 3.0.4923 is much, much bigger than in 3.0.5217 and 3.0.5224.
>> Let me know if you need me to send you a binary (DisplayFridayListUI.dll)
>> that can reproduce this.
>>
>> If I can't resolve this issue, I'm afraid I will have to stick with
>> 3.0.4923 as 3.0.5224 has a break that I can't work around.
>>
>> If anything is unclear, let me know. Thanks again,
>>
>> Roy
>>
>>
>> Neil Sleightholm wrote:
>>>
>>> I am not sure I understand what you are asking, could you explain?
>>>
>>> Neil
>>>
>>> -----Original Message-----
>>> From: Roy Abou Assaly [mailto:[email protected]]
>>> Sent: 24 April 2009 16:02
>>> To: [email protected]
>>> Subject: Re: [WiX-users] Heat 3.0.4923 vs 3.0.5217 vb6 dll output
>>>
>>>
>>> Can anyone run light 3.0.5217 on this to confirm this? The merge module
>>> simple won't build and that Interface element is indeed needed.
>>>
>>> Thanks again.
>>>
>>>
>>> Roy Abou Assaly wrote:
>>>>
>>>> Oh, and one more:
>>>>
>>>> 00020420-0000-0000-C000-000000000046
>>>>
>>>> After that, I was able to build my merge module and link them and
>>> create
>>>> my MSI which contains 129 vb6 com DLLs and various OCXs. Again, my
>>>> experience in this area is weak, but the product seems to install and
>>>> uninstall without issues even though I remove those elements that I
>>> didn't
>>>> fully understand.
>>>>
>>>> So I went and test the application, and of course, it threw an error
>>>> saying the Interface isn't registered, which makes sense since I
>>> removed
>>>> them. So my ignorance has cost me. I really need those interface
>>>> elements or else the application won't work.
>>>>
>>>>
>>>> Roy Abou Assaly wrote:
>>>>>
>>>>> Still kind of stuck. I was able to generate the exact xml as Brian
>>> did.
>>>>> Candle compiled fine, but light is complaining. I'm trying to
>>> generate a
>>>>> merge module out of it. Getting this error:
>>>>>
>>>>> [exec] D:\Builds\PRISM XP\Build
>>> 11.51.0000\Bin\PrismShell.wxs(18) :
>>>>> error LGHT0130 : The primary key 'reg0387C011F3
>>>>> F8A22BDFC14B72466D9C9A.C7AC8538_65ED_4C2B_AE16_6291871D0918' is
>>>>> duplicated in table 'Registry'. Please remove one of the entries or
>>>>> rename a part of the primary key to avoid the collision.
>>>>>
>>>>> D:\Builds\PRISM XP\Build 11.51.0000\Bin>candle -v PrismShell.wxs
>>>>> Microsoft (R) Windows Installer Xml Compiler version 3.0.5217.0
>>>>> Copyright (C) Microsoft Corporation. All rights reserved.
>>>>>
>>>>> PrismShell.wxs
>>>>>
>>>>> D:\Builds\PRISM XP\Build 11.51.0000\Bin>light -v PrismShell.wixobj
>>>>> Microsoft (R) Windows Installer Xml Linker version 3.0.5217.0
>>>>> Copyright (C) Microsoft Corporation. All rights reserved.
>>>>>
>>>>> Updating file information.
>>>>> Creating cabinet files.
>>>>> Creating cabinet
>>>>> 'C:\Users\roy\AppData\Local\Temp\jyewbz0r\#MergeModule.CABinet'.
>>>>> Generating database.
>>>>> D:\Builds\PRISM XP\Build 11.51.0000\Bin\PrismShell.wxs(18) : error
>>>>> LGHT0130 : The primary key 'reg0387C011F3F8A22BDFC14B
>>>>> 72466D9C9A.C7AC8538_65ED_4C2B_AE16_6291871D0918' is duplicated in
>>> table
>>>>> 'Registry'. Please remove one of the entries or
>>>>> rename a part of the primary key to avoid the collision.
>>>>>
>>>>> My merge module looks like this:
>>>>>
>>>>> <?xml version="1.0" encoding="utf-8"?>
>>>>> <Wix xmlns:wi="http://schemas.microsoft.com/wix/2006/wi"
>>>>> xmlns="http://schemas.microsoft.com/wix/2006/wi">
>>>>> <Module Id="PrismShell" Language="1033" Version="1.0.0.0">
>>>>> <Package Id="C7AC8538-65ED-4C2B-AE16-6291871D0918"
>>> Description="PRISM
>>>>> Shell Module" Comments="PRISM Shell Merge Module" Manufacturer=Acme"
>>>>> InstallerVersion="300">
>>>>> </Package>
>>>>> <Icon Id="PRISM.ICO" SourceFile="PRISM.exe">
>>>>> </Icon>
>>>>> <Directory Id="TARGETDIR" Name="SourceDir">
>>>>> <Directory Id="ProgramFilesFolder" Name="Program Files">
>>>>> <Directory Id="HOCDir" Name="Acme">
>>>>> <Directory Id="INSTALLLOCATION" Name="PRISM Shell">
>>>>> <Component Id="DisplayFridayListUI.dll"
>>>>> Guid="{77B6CDD1-B9C6-4497-B7F5-242B9783D6A3}">
>>>>> <File Id="DisplayFridayListUI.dll"
>>> KeyPath="yes"
>>>>> Source="SourceDir\DisplayFridayListUI.dll">
>>>>> <TypeLib
>>> Id="{3515D627-3FA0-490F-9330-02A73023E0C0}"
>>>>> Description="DisplayFridayListUI" HelpDirectory="TARGETDIR"
>>> Language="0"
>>>>> MajorVersion="1" MinorVersion="0">
>>>>> <Class
>>> Id="{9AF8DE3E-3FFB-4F1C-AA59-3DBAB1725BB9}"
>>>>> Context="InprocServer32"
>>>>> Description="DisplayFridayListUI.CDisplayFridayList"
>>>>> ThreadingModel="apartment" Version="1.0" Programmable="yes">
>>>>> <ProgId
>>> Id="DisplayFridayListUI.CDisplayFridayList"
>>>>> Description="DisplayFridayListUI.CDisplayFridayList" />
>>>>> </Class>
>>>>> <Interface
>>> Id="{2D3FD2B6-AF78-4DFD-A5C9-7CE97BC4A594}"
>>>>> Name="CDisplayFridayList"
>>>>> ProxyStubClassId="{00020424-0000-0000-C000-000000000046}"
>>>>> ProxyStubClassId32="{00020424-0000-0000-C000-000000000046}" />
>>>>> </TypeLib>
>>>>> </File>
>>>>> <RegistryValue Root="HKCR"
>>>>> Key="CLSID\{9AF8DE3E-3FFB-4F1C-AA59-3DBAB1725BB9}\Implemented
>>>>> Categories\{40FC6ED5-2438-11CF-A3DB-080036F12502}" Value=""
>>> Type="string"
>>>>> Action="write" />
>>>>> <RegistryValue Root="HKCR"
>>>>> Key="Interface\{2D3FD2B6-AF78-4DFD-A5C9-7CE97BC4A594}\ProxyStubClsid"
>>>>> Value="{00020424-0000-0000-C000-000000000046}" Type="string"
>>>>> Action="write" />
>>>>> <RegistryValue Root="HKCR"
>>>>>
>>> Key="Interface\{2D3FD2B6-AF78-4DFD-A5C9-7CE97BC4A594}\ProxyStubClsid32"
>>>>> Value="{00020424-0000-0000-C000-000000000046}" Type="string"
>>>>> Action="write" />
>>>>> <RegistryValue Root="HKCR"
>>>>> Key="Interface\{2D3FD2B6-AF78-4DFD-A5C9-7CE97BC4A594}"
>>>>> Value="_CDisplayFridayList" Type="string" Action="write" />
>>>>> </Component>
>>>>>
>>>>> </Directory>
>>>>> </Directory>
>>>>> </Directory>
>>>>> <Directory Id="ProgramMenuFolder" Name="Programs">
>>>>> <Directory Id="ProgramMenuDir" Name="PRISM">
>>>>> </Directory>
>>>>> </Directory>
>>>>> <Directory Id="DesktopFolder" SourceName="Desktop">
>>>>> </Directory>
>>>>> </Directory>
>>>>> </Module>
>>>>> </Wix>
>>>>>
>>>>> I then decided to simply remove the following in order to create my
>>> merge
>>>>> module:
>>>>>
>>>>> <Interface Id="{2D3FD2B6-AF78-4DFD-A5C9-7CE97BC4A594}"
>>>>> Name="CDisplayFridayList"
>>>>> ProxyStubClassId="{00020424-0000-0000-C000-000000000046}"
>>>>> ProxyStubClassId32="{00020424-0000-0000-C000-000000000046}" />
>>>>>
>>>>>
>>>>
>>>>
>>>
>>> --
>>> View this message in context:
>>> http://n2.nabble.com/Heat-3.0.4923-vs-3.0.5217-vb6-dll-output-tp2686239p
>>> 2692987.html
>>> Sent from the wix-users mailing list archive at Nabble.com.
>>>
>>>
>>> ------------------------------------------------------------------------
>>> ------
>>> Crystal Reports - New Free Runtime and 30 Day Trial
>>> Check out the new simplified licensign option that enables unlimited
>>> royalty-free distribution of the report engine for externally facing
>>>
>>> server and web deployment.
>>> http://p.sf.net/sfu/businessobjects
>>> _______________________________________________
>>> WiX-users mailing list
>>> [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/wix-users
>>>
>>> ------------------------------------------------------------------------------
>>> Crystal Reports - New Free Runtime and 30 Day Trial
>>> Check out the new simplified licensign option that enables unlimited
>>> royalty-free distribution of the report engine for externally facing
>>> server and web deployment.
>>> http://p.sf.net/sfu/businessobjects
>>> _______________________________________________
>>> WiX-users mailing list
>>> [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/wix-users
>>>
>>>
>>
>>
>
>
--
View this message in context:
http://n2.nabble.com/Heat-3.0.4923-vs-3.0.5217-vb6-dll-output-tp2686239p2884570.html
Sent from the wix-users mailing list archive at Nabble.com.
------------------------------------------------------------------------------
The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
production scanning environment may not be a perfect world - but thanks to
Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
Series Scanner you'll get full speed at 300 dpi even with all image
processing features enabled. http://p.sf.net/sfu/kodak-com
_______________________________________________
WiX-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-users