Menu

#375 size limitations in candle?

v2.0
closed
candle (347)
2012-09-15
2005-08-09
Dan Jagnow
No

I'm using WiX to build MSIs as part of a NAnt-based
build script. I'm running into problems as I attempt to
add dialog elements modeled on a dark decompilation
of UISample.Msi from the platform SDK. I commented
out the UI portion of one of my two WXS files and
uncommented stuff until I got down to two (adjacent)
lines in a dialog that I could not uncomment without
breaking candle. I started playing around with adding
other simple controls in their place (banner lines, etc.)
and couldn't make that work either. Eventually I just
started adding X's to the end of the ID of one of the
controls that was working. Adding a few X's would
work, but more than 30 or so and it would break. It
seems that if the overall size of the XML (after
comments are removed) passes a certain point, candle
starts failing. The relevant portion of the stack trace is
given below ([exec] prefixes an artifact of using NAnt).
I'm using the Votive install of WiX 2.0.3116.0. Am I
bumping up against some kind of size/buffer limitation?

[exec] candle.exe : error CNDL0001 : Cannot have '?>'
inside an XML process
ing instruction.
[exec]
[exec] Exception Type: System.ArgumentException
[exec]
[exec] Stack Trace:
[exec] at
System.Xml.XmlTextWriter.WriteProcessingInstruction
(String nam
e, String text)
[exec] at
System.Xml.XmlProcessingInstruction.WriteTo
(XmlWriter w)
[exec] at System.Xml.XmlElement.WriteContentTo
(XmlWriter w)
[exec] at System.Xml.XmlElement.WriteTo
(XmlWriter w)
[exec] at System.Xml.XmlElement.WriteContentTo
(XmlWriter w)
[exec] at System.Xml.XmlElement.WriteTo
(XmlWriter w)
[exec] at System.Xml.XmlElement.WriteContentTo
(XmlWriter w)
[exec] at System.Xml.XmlElement.WriteTo
(XmlWriter w)
[exec] at
System.Xml.XmlDocument.WriteContentTo(XmlWriter
xw)
[exec] at System.Xml.XmlDocument.WriteTo
(XmlWriter w)
[exec] at
Microsoft.Tools.WindowsInstallerXml.Compiler.ValidateD
ocument(
XmlDocument document)
[exec] at
Microsoft.Tools.WindowsInstallerXml.Compiler.Compile
(XmlDocume
nt source, String sourcePath)
[exec] at
Microsoft.Tools.WindowsInstallerXml.Tools.Candle.Run
(String[]
args)

Discussion

  • Dan Jagnow

    Dan Jagnow - 2005-08-09

    Logged In: YES
    user_id=1015014

    To make matters even more fun, I tried addressing this
    problem by splitting out the UI into a fragment as a separate
    WXS file. That worked like a charm. I was able to
    uncomment the portions that had been causing trouble, and
    everything compiled, linked, and ran fine. However, I decided
    that my UI.wxs file needed a new name, so I copy/pasted the
    file, updated the candle and light command lines, and... now
    it doesn't work. I tried a couple of different file names, but it
    only works when I set it back to compile and link the original
    UI.wxs copy of the file. A diff program shows no difference
    between the files, and Visual Studio .NET says they're saved
    with the same codepage. The error I get is as follows. I also
    saw this error during certain attempts at getting the single-file
    solution working.

    [exec] candle.exe : error CNDL0001 : Cannot have '?>' inside
    an XML process
    ing instruction.
    [exec]
    [exec] Exception Type: System.ArgumentException
    [exec]
    [exec] Stack Trace:
    [exec] at
    System.Xml.XmlTextWriter.WriteProcessingInstruction(String
    nam
    e, String text)
    [exec] at System.Xml.XmlProcessingInstruction.WriteTo
    (XmlWriter w)
    [exec] at System.Xml.XmlElement.WriteContentTo
    (XmlWriter w)
    [exec] at System.Xml.XmlElement.WriteTo(XmlWriter w)
    [exec] at System.Xml.XmlElement.WriteContentTo
    (XmlWriter w)
    [exec] at System.Xml.XmlElement.WriteTo(XmlWriter w)
    [exec] at System.Xml.XmlElement.WriteContentTo
    (XmlWriter w)
    [exec] at System.Xml.XmlElement.WriteTo(XmlWriter w)
    [exec] at System.Xml.XmlDocument.WriteContentTo
    (XmlWriter xw)
    [exec] at System.Xml.XmlDocument.WriteTo(XmlWriter
    w)
    [exec] at
    Microsoft.Tools.WindowsInstallerXml.Compiler.ValidateDocum
    ent(
    XmlDocument document)
    [exec] at
    Microsoft.Tools.WindowsInstallerXml.Compiler.Compile
    (XmlDocume
    nt source, String sourcePath)
    [exec] at
    Microsoft.Tools.WindowsInstallerXml.Tools.Candle.Run(String
    []
    args)

     
  • Rob Mensching

    Rob Mensching - 2005-08-10

    Logged In: YES
    user_id=991639

    Do you have the .NET Framework 1.1 SP1 applied? This
    problem usually ends up being tracked down to a bug in the
    Framework's XmlReader processing of the processing
    directives.

    Feel free to reopen this bug if SP1 does not fix the issue.

     
  • Steven Chin

    Steven Chin - 2005-11-23

    Logged In: YES
    user_id=1386824

    I am running into this same problem and I have .NET
    Framemaker 1.1 SP1 installed. Is the answer in the
    duplicate bug report?

    C:/temp/MCR/newjob131153/Wix-2.0/candle.exe -out
    C:\temp/MCR/newjob131153/bin/
    C:\temp/MCR/newjob131153/NewMCRMergeModule.wxs
    C:\temp/MCR/newjob131153/NewMCRfragment.wxsexecuting
    C:/temp/MCR/newjob131153/Wix-2.0/candle.exe -out
    C:\temp/MCR/newjob131153/bin/
    C:\temp/MCR/newjob131153/NewMCRMergeModule.wxs
    C:\temp/MCR/newjob131153/NewMCRfragment.wxs
    Microsoft (R) Windows Installer Xml Compiler version
    2.0.3309.0
    Copyright (C) Microsoft Corporation 2003. All rights
    reserved.

    NewMCRMergeModule.wxs
    NewMCRfragment.wxs
    candle.exe : error CNDL0001 : Cannot have '?>' inside an
    XML processing instruction.

    Exception Type: System.ArgumentException

    Stack Trace:
    at System.Xml.XmlTextWriter.WriteProcessingInstruction
    (String name, String text)
    at System.Xml.XmlProcessingInstruction.WriteTo(XmlWriter
    w)
    at System.Xml.XmlElement.WriteContentTo(XmlWriter w)
    at System.Xml.XmlElement.WriteTo(XmlWriter w)
    at System.Xml.XmlElement.WriteContentTo(XmlWriter w)
    at System.Xml.XmlElement.WriteTo(XmlWriter w)
    at System.Xml.XmlElement.WriteContentTo(XmlWriter w)
    at System.Xml.XmlElement.WriteTo(XmlWriter w)
    at System.Xml.XmlElement.WriteContentTo(XmlWriter w)
    at System.Xml.XmlElement.WriteTo(XmlWriter w)
    at System.Xml.XmlElement.WriteContentTo(XmlWriter w)
    at System.Xml.XmlElement.WriteTo(XmlWriter w)
    at System.Xml.XmlElement.WriteContentTo(XmlWriter w)
    at System.Xml.XmlElement.WriteTo(XmlWriter w)
    at System.Xml.XmlElement.WriteContentTo(XmlWriter w)
    at System.Xml.XmlElement.WriteTo(XmlWriter w)
    at System.Xml.XmlElement.WriteContentTo(XmlWriter w)
    at System.Xml.XmlElement.WriteTo(XmlWriter w)
    at System.Xml.XmlElement.WriteContentTo(XmlWriter w)
    at System.Xml.XmlElement.WriteTo(XmlWriter w)
    at System.Xml.XmlElement.WriteContentTo(XmlWriter w)
    at System.Xml.XmlElement.WriteTo(XmlWriter w)
    at System.Xml.XmlElement.WriteContentTo(XmlWriter w)
    at System.Xml.XmlElement.WriteTo(XmlWriter w)
    at System.Xml.XmlDocument.WriteContentTo(XmlWriter xw)
    at System.Xml.XmlDocument.WriteTo(XmlWriter w)
    at
    Microsoft.Tools.WindowsInstallerXml.Compiler.ValidateDocumen
    t(XmlDocument document)
    at Microsoft.Tools.WindowsInstallerXml.Compiler.Compile
    (XmlDocument source, String sourcePath)
    at Microsoft.Tools.WindowsInstallerXml.Tools.Candle.Run
    (String[] args)
    ***system call died - returned 256