Hey Roy, Thanks for the positive feedback and metric data!
I am curious, does your installation package, once installed, work correctly? Thanks, Brian Rogers "Intelligence removes complexity." - Me http://icumove.spaces.live.com On Wed, May 13, 2009 at 8:30 AM, Roy Abou Assaly <royass...@gmail.com>wrote: > > 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 > ------------------------------------------------------------------------------ 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