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:royass...@gmail.com] >>> Sent: 24 April 2009 16:02 >>> To: wix-users@lists.sourceforge.net >>> 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 >>> WiX-users@lists.sourceforge.net >>> 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 >>> WiX-users@lists.sourceforge.net >>> 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 WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users