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\FRFEMesh2d\" 
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

Reply via email to