Discussion:
[WiX-users] error CNDL0014
McCann, Jerome
2007-12-27 17:52:14 UTC
Permalink
When I run the candle "C:\Wix 3\UltraEdit32_FIles.wxs" -out "C:\Wix
3\UltraEdit32_FIles.wixobj", I am getting the following error:



UltraEdit32_Files.wxs

C:\Installs\UltraEdit32_Files.wxs(72) : error CNDL0014 : The
TypeLib/@HelpDirect

ory attribute's value, '[INSTALLDIR]', is not a legal identifier.
Identifier's

may contain ASCII characters A-Z, a-z, digits, underscores (_), or
periods (.).

Every identifier must begin with either a letter or an underscore.

C:\Installs\UltraEdit32_Files.wxs(102) : error CNDL0014 : The
TypeLib/@HelpDirec

tory attribute's value, '[INSTALLDIR]', is not a legal identifier.
Identifier's

may contain ASCII characters A-Z, a-z, digits, underscores (_), or
periods (.).

Every identifier must begin with either a letter or an underscore.



I am using VS 2005 SP1 with Wix-3.0.2925.0 and
ProjectAggregator2-3.0.2925.0.



The INSTALLDIR property is set to the folder.



The code for the component in the wxs looks like this:



<Component Id="wodCertificate_dll"
Guid="{E1C0CA6F-23F6-43A4-B9E7-B94A772318A6}">

<File Id="wodCertificate.dll" Name="wodCertificate.dll"
KeyPath="yes" Source=".\Program Files\IDM Computer
Solutions\UltraEdit-32\wodCertificate.dll">

<Class Id="{020993C2-5B29-41AB-B25D-28230DC2956A}"
Context="InprocServer32" Description="CertStores Class"
ThreadingModel="both">

<ProgId Id="CertMng.CertStores" Description="CertStores
Class" />

<ProgId Id="CertMng.CertStores.1" Description="CertStores
Class" />

</Class>

<Class Id="{2D0A5AF2-A15F-4A88-8093-61CA9A7B54F5}"
Context="InprocServer32" Description="Certificates Class"
ThreadingModel="both">

<ProgId Id="CertMng.Certificates"
Description="Certificates Class" />

<ProgId Id="CertMng.Certificates.1"
Description="Certificates Class" />

</Class>

<Class Id="{EC0628A7-7670-43C0-BCD0-717C54BF878B}"
Context="InprocServer32" Description="CertLocation Class"
ThreadingModel="both">

<ProgId Id="CertMng.CertLocation"
Description="CertLocation Class" />

<ProgId Id="CertMng.CertLocation.1"
Description="CertLocation Class" />

</Class>

<TypeLib Id="{37D86C16-D598-4810-8192-74E019F65D34}"
Description="WeOnlyDo! Certificate Management library"
HelpDirectory="[INSTALLDIR]" Language="0" MajorVersion="1"
MinorVersion="0">

<Class Id="{4D9AE59C-8651-4F93-8D07-74E3A4B412F8}"
Context="InprocServer32" Description="Certificate Class"
ThreadingModel="apartment">

<ProgId Id="WeOnlyDo.Certificate.1"
Description="Certificate Class">

<ProgId Id="WeOnlyDo.Certificate"
Description="Certificate Class" />

</ProgId>

</Class>

<Interface Id="{98D91670-2BF1-441C-8997-650087E9F3AA}"
Name="ICertificate"
ProxyStubClassId="{00020424-0000-0000-C000-000000000046}"
ProxyStubClassId32="{00020424-0000-0000-C000-000000000046}" />

<Interface Id="{9E038FDF-0B49-4491-9962-020ABAFAE39B}"
Name="ICertStores"
ProxyStubClassId="{00020424-0000-0000-C000-000000000046}"
ProxyStubClassId32="{00020424-0000-0000-C000-000000000046}" />

<Interface Id="{A0368E43-0825-440C-BBBB-FC7189FD6626}"
Name="ICertLocation"
ProxyStubClassId="{00020424-0000-0000-C000-000000000046}"
ProxyStubClassId32="{00020424-0000-0000-C000-000000000046}" />

<Interface Id="{D5D1B6F1-EA5C-4854-93EB-340D3E0DF39B}"
Name="ICertificates"
ProxyStubClassId="{00020424-0000-0000-C000-000000000046}"
ProxyStubClassId32="{00020424-0000-0000-C000-000000000046}" />

</TypeLib>

</File>

</Component>



The line TypeLib Id="{37D86C16-D598-4810-8192-74E019F65D34}"
Description="WeOnlyDo! Certificate Management library"
HelpDirectory="[INSTALLDIR]" Language="0" MajorVersion="1"

contains the INSTALLDIR property that points to the main program folder.




I attached the actual registry entries that are created when installing
the software.







Jerome McCann

Informatics Client Architecture

Forest Laboratories, Inc.

Harborside Plaza V, Jersey City, NJ

Phone: (201) 427-8660

Email: ***@frx.com





This e-mail and its attachments may contain Forest Laboratories, Inc. proprietary information that is privileged, confidential or subject to copyright belonging to Forest Laboratories, Inc. This e-mail is intended solely for the use of the individual or entity to which it is addressed. If you are not the intended recipient of this e-mail, or the employee or agent responsible for delivering this e-mail to the intended recipient, you are hereby notified that any dissemination, distribution, copying or action taken in relation to the contents of and attachments to this e-mail is strictly prohibited and may be unlawful. If you have received this e-mail in error, please notify the sender immediately and permanently delete the original and any copy of this e-mail and any printout.
Mike Dimmick
2007-12-28 16:08:47 UTC
Permalink
The TypeLib/@HelpDirectory attribute's value is supposed to be the ID of the
directory, not a Formatted type. Use INSTALLDIR, not [INSTALLDIR].



The documentation isn't very helpful as it's generated directly from the XML
schema, which in the main doesn't differentiate between different logical
types of string. This is partly due to the difficulty of defining regular
expressions for the different types to limit the allowed characters, because
WiX also supports using compile-time and localization-time variables in
place of at least some identifiers (they must of course ultimately resolve
to identifiers). I'm not sure if it's possible to define a new type based on
String with no additional restrictions.
--
Mike Dimmick



_____

From: wix-users-***@lists.sourceforge.net
[mailto:wix-users-***@lists.sourceforge.net] On Behalf Of McCann, Jerome
Sent: 27 December 2007 17:52
To: wix-***@lists.sourceforge.net
Subject: [WiX-users] error CNDL0014



When I run the candle "C:\Wix 3\UltraEdit32_FIles.wxs" -out "C:\Wix
3\UltraEdit32_FIles.wixobj", I am getting the following error:



UltraEdit32_Files.wxs

C:\Installs\UltraEdit32_Files.wxs(72) : error CNDL0014 : The
TypeLib/@HelpDirect

ory attribute's value, '[INSTALLDIR]', is not a legal identifier.
Identifier's

may contain ASCII characters A-Z, a-z, digits, underscores (_), or periods
(.).

Every identifier must begin with either a letter or an underscore.

C:\Installs\UltraEdit32_Files.wxs(102) : error CNDL0014 : The
TypeLib/@HelpDirec

tory attribute's value, '[INSTALLDIR]', is not a legal identifier.
Identifier's

may contain ASCII characters A-Z, a-z, digits, underscores (_), or periods
(.).

Every identifier must begin with either a letter or an underscore.
Bob Arnson
2007-12-28 18:27:02 UTC
Permalink
of the directory, not a Formatted type. Use INSTALLDIR, not [INSTALLDIR].
The documentation isn't very helpful as it's generated directly from
the XML schema, which in the main doesn't differentiate between
different logical types of string. This is partly due to the
difficulty of defining regular expressions for the different types to
limit the allowed characters, because WiX also supports using
compile-time and localization-time variables in place of at least some
identifiers (they must of course ultimately resolve to identifiers).
I'm not sure if it's possible to define a new type based on String
with no additional restrictions.
I just added a new error message for this case: Where an identifier is
expected but the compiler gets a "[BLAHBLAH]" string instead, it throws
a more specific error message.
--
sig://boB
http://joyofsetup.com/
Loading...