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 &#45; New Free Runtime and 30 Day Trial
>>> Check out the new simplified licensign option that enables unlimited
>>> royalty&#45;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 &#45; New Free Runtime and 30 Day Trial
>>> Check out the new simplified licensign option that enables unlimited
>>> royalty&#45;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

Reply via email to