Search code examples
.netconfigurationcruisecontrol.netnant

CruiseControl "Unused node detected" error when adding xmlns to Project node


I am trying to use the Cruise Control preprocessor functionality to break my configuration into smaller reusable sections. I can use the include feature great from within the root cruisecontrol node, like so:

<cruisecontrol xmlns:cb="urn:ccnet.config.builder">
    <cb:include href="child.config" />
</cruisecontrol>

If I try and use another include within the child config (like so):

<project name="TestProject" xmlns:cb="urn:ccnet.config.builder">    
    <cb:include href="grandchild.config" />
</project>

I get the following error:

ThoughtWorks.CruiseControl.Core.Config.ConfigurationException: Unused node detected: xmlns:cb="urn:ccnet.config.builder"

If I remove the xmlns namespace statement, I get this error instead:

ThoughtWorks.CruiseControl.Core.Config.ConfigurationException: The configuration file contains invalid xml: E:\Build\Config\AppRiver.Tools.BuildAutomation\CruiseControl\ccnet.config ---> System.Xml.XmlException: 'cb' is an undeclared namespace.

And lastly, if I remove the "cb" prefix on the tag, I get this error

Unused node detected:     Unused node detected: <define buildFile="CP.WEB.Dev.SanityCheck.CI.build" />

I am out of ideas - any help appreciated!


Solution

  • Cruise Control throws an error if an xmlns is put on the project tag. This seems to be a bug. I have now moved off Cruise Control and onto Hudson, and very happy with it.