Could you confirm what version of WiX would are using, I think 2 may
have been fixed in v3.0.5315.0.

Neil

-----Original Message-----
From: Ondrej Zarevucky [mailto:ondrej.zarevu...@fine.cz] 
Sent: 19 May 2009 10:25
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] Problems with Heat and COM (and subsequently Candle
and Light)

Hi everybody,
Thank the Wix developers for such great tool for making installations!
I've 
been using Wix for a few weeks and I love it, but I'm having a few
issues 
with the Heat tool generating wrong WXS files with COM objects. I'm
sorry if 
it was reported before, but I couldn't find any search solution for this

mailing list (the web interface 
http://sourceforge.net/mailarchive/forum.php?forum_name=wix-users
doesn't 
seem to provida any)

1) Heat is generating empty Description attributes for the COM objects,
but 
this throws errors in Candle. Can you disable generating empty
Description 
attributes? I've already written a tool, which removes them, but it
seems 
this should be done by Heat itself.

FRTopology.wxs(14) : error CNDL0006 : The Class/@Description attribute'
s value cannot be an empty string.  If you want the value to be null or 
empty, s
imply remove the entire attribute.

Part of WXS source generated by Heat:
            <Component Id="FRTopology.dll" 
Guid="{ABF39CD0-EFCD-4DE1-871B-A541E957F9A3}">
                <File Id="FRTopology.dll" KeyPath="yes" 
Source="SourceDir\FRTopology.dll">
                    <TypeLib Id="{913A00C0-E8C0-4BC9-9429-90EA9C553766}"

Description="Fine Topology Library" HelpDirectory="Solvers" Language="0"

MajorVersion="1" MinorVersion="0">
                        <Class
Id="{6186A93C-1213-46B4-B3E5-EE1A6FC13647}" 
Context="InprocServer32" Description="" ThreadingModel="apartment" 
Version="1.0">
                            <ProgId Id="FRTopology.Tp2DSorter" 
Description="" />
                        </Class>
                        <Class
Id="{92BCDFC0-8A81-4AC0-8248-991BD54A60D9}" 
Context="InprocServer32" Description="" ThreadingModel="apartment" 
Version="1.0">
                            <ProgId Id="FRTopology.Tp2DCorrector" 
Description="" />
                        </Class>
                    </TypeLib>
                </File>
                <RegistryValue Root="HKCR" Key="Interface" Value="" 
Type="string" Action="write" />
            </Component>


2) I have one COM object, for which Heat and Candle works fine, but
Light 
generates an error of duplicate registry key entry:

FRFEMesh2d.wxi(14) : error LGHT0130 : The primary key 'reg7B7D6016
89B9EB3643720FF03160A52E' is duplicated in table 'Registry'.  Please
remove 
one
of the entries or rename a part of the primary key to avoid the
collision.

The source WXS generated by Heat:
            <Component Id="FRFEMesh2D.dll" 
Guid="{5240A417-FBE3-4E10-9AD8-B3E0F59D7BEA}">
                <File Id="FRFEMesh2D.dll" KeyPath="yes" 
Source="SourceDir\FRFEMesh2D.dll">
                    <Class Id="{1CE686A7-CA82-4C61-820E-EDC6E846D6C8}" 
Context="InprocServer32" Description="FEMeshGen2DGenerator Class" 
ThreadingModel="both">
                        <ProgId Id="FRFEMesh2D.FEMeshGen2DGenerator" 
Description="FEMeshGen2DGenerator Class" />
                        <ProgId Id="FRFEMesh2D.FEMeshGen2DGenerator.1" 
Description="FEMeshGen2DGenerator Class" />
                    </Class>
                    <Class Id="{DED6C3C1-538B-477E-AEDB-D7B6BFFBA887}" 
Context="InprocServer32" Description="FEMeshGen2DOptimizer Class" 
ThreadingModel="both">
                        <ProgId Id="FRFEMesh2D.FEMeshGen2DOptimizer" 
Description="FEMeshGen2DOptimizer Class" />
                        <ProgId Id="FRFEMesh2D.FEMeshGen2DOptimizer.1" 
Description="FEMeshGen2DOptimizer Class" />
                    </Class>
                    <TypeLib Id="{DB9CDFE3-B353-4B5C-957E-C7B6644718AA}"

Description="FRFEMesh2D 1.0 Type Library" HelpDirectory="Solvers" 
Language="0" MajorVersion="1" MinorVersion="0" />
                </File>
                <RegistryValue Root="HKCR" Key="Interface" Value="" 
Type="string" Action="write" />
            </Component>


2b) If I try to use -scom option for Heat, there are some path in
registry 
values which are not replaced by Directory Ids :(
Used command line:
heat dir "Packages\Solvers\FRFEMesh2d" -nologo -cg "FRFEMesh2d" -dr 
"Solvers" -srd -sfrag -suid -gg -out "FRFEMesh2d2.wxs"

Resulting WXS:
        <DirectoryRef Id="Solvers">
            <Component Id="FRFEMesh2D.dll" 
Guid="{D01725DB-9374-43B6-920D-49EC5BEB2093}">
                <File Id="FRFEMesh2D.dll" KeyPath="yes" 
Source="SourceDir\FRFEMesh2D.dll" />
...
                <RegistryValue Root="HKCR" 
Key="TypeLib\{DB9CDFE3-B353-4B5C-957E-C7B6644718AA}\1.0\HELPDIR" 
Value="C:\Documents and 
Settings\zarevak\Dokumenty\WixTest\Modules\Source\Packages\Solvers\FRFEM
esh2d\" 
Type="string" Action="write" />
                <RegistryValue Root="HKCR" 
Key="TypeLib\{DB9CDFE3-B353-4B5C-957E-C7B6644718AA}\1.0"
Value="FRFEMesh2D 
1.0 Type Library" Type="string" Action="write" />
            </Component>
        </DirectoryRef>


3) Some of the COM objects use Czech characters (codepage 1250) in 
Description attributes. The WXS source is using utf-8 codepage, but when

using Ligh I'm getting errors about using wrong characters in codepage
1252. 
I've trid to make tool to translate the characters to codepage 1252, but
I 
still got this error. Is there a way, how can I make Unicode MSI?

Legacy.wxs(523) : error LGHT0311 : A string was provided which doe
sn't match the specified database codepage '1252'. Either set your
database 
code
page to match these characters, or change these characters to ones that 
exist in
 the database's codepage.


Thank you for your time, any help is appreciated.
Ondrej Zarevucky 


------------------------------------------------------------------------
------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing 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 licensing 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

Reply via email to