Separating out your CruiseControl.net file
The ccnet.config for the server I inherited ownership of has since that happened contained a series of DTD entries to save having repeated blocks of markup in it. Up until very recently the only entities defined were for VSS Configuration (for "sourcecontrol" blocks), NANT Binary and NANT Binary with a Target parameter defined. See the example below for the NANT Binary with a Target parameter defined:
<!DOCTYPE cruisecontrol [
<!ENTITY nantbin "<executable>C:\BuildServer\tools\nant\bin\nant.exe</executable>
<targetList>
<target>full</target>
</targetList>">
]>
<cruisecontrol>
...
I've just started started trying to separate out the ccnet.config as there are nearly 80 projects in there now and it's getting a tad difficult to read. A bit of judicious googling found me the "Multiple Projects" page on the cruisecontrol.net website. So without further ado I promptly separated our ccnet.config into one file per queue, plus a master one to glue it all together. A couple of pitfalls I encountered:
1 - Make sure that your sub-files actually get deployed to your CCNet's \server folder. Ours are self-deployed by a "BuildServerUpdate" build script and I forgot to add them to the list of files it copied from its VSS source folder to the \server folder in CruiseControl.
2 - Make sure your entity names are lower case
3 - Make sure that after splitting your file and thus creating the entities (see the "Splitting the ccnet.config file" section of the Multiple Projects page) you actually remember to put them in the body of the page. I didn't and spent a good while scratching my head!
