Project Description Oneliner

The CCNet Build Station is a Windows Forms application that runs the CruiseControl.NET Continuous Integration Build Server without installation and without depending on IIS by using a provided version of the Cassini web server. Ideal for providing a local build server.


  • Unzip the release zip file to a directory of your choice. On unzip a subfolder CCNetBuildStation is automatically created. So the zip file can be directly unzipped to for example c:\Program Files.
  • Install CruiseControl.NET ( The latest version can be downloaded from I prefer to install the zip file version, and not the installer. This way you can create a self contained set that is portable and independent of installations, and can have multiple instances. You can also use the installer if you only need one instance.
  • Call the application <installationfolder>\CCNetBuildStation\Macaw.SolutionsFactory.FactoryIdeTools.CCNetBuildStation.exe with the correct arguments, or create a batch file like the file <installationfolder>\CCNetBuildStation\CCNetBuildStation.bat for starting the application.


The CCNetBuildStation application <installationfolder>\CCNetBuildStation\Macaw.SolutionsFactory.FactoryIdeTools.CCNetBuildStation.exe supports the followibng command-line arguments:

Option Description
--title=VALUE Title to display in the application window, default CCNetBuildStation [Optional]
--ccnetfolder=VALUE The path to the folder where CruiseControl.Net is installed [Required]
--ccnetconfigpath=VALUE The path to the CruiseControl.Net configuration file (like ccnet.config) [Required]
--webserverpath=VALUE Path to the Casini or Visual Studio WebDev.WebServer compatible web server application. If not specified the built-in Cassini web server will be used [Optional]
--webserverport=VALUE Port to run the CruiseControl.Net web portal on, use port not used by IIS, for example 1234 [Required]
--rollinglogitems=VALUE Number of lines to show in the log window, default 1000 [Optional]
--verbose=VALUE Verbosity mode (on, off), default 'on' [Optional]
-h, -?, --help Show help in the log window. The CruiseControl.Net and the web server are not started.

Note that options can start with --,- or /. option-VALUE seperator can be =,: or a space.

Example batch file CCNetBuildStation.bat:
@REM Start a configured CCNetBuildStation
%~dp0Macaw.SolutionsFactory.FactoryIdeTools.CCNetBuildStation.exe ^
    -title="Local Build Server" ^
	-ccnetfolder="C:\Projects\MAST.Vs2008\tools\DotNet2\CruiseControl.NET" ^
	-ccnetconfigpath="C:\Projects\MAST.Vs2008\tools\DotNet2\CruiseControl.NET\server\MacawSolutionsFactory-ccnet.config" ^
	-webserverpath="C:\Program Files\Common Files\Microsoft Shared\DevServer\9.0\WebDev.WebServer.EXE" ^
	-webserverport=1234 ^
	-rollinglogitems=500 ^

where %~dp0 is the folder where the executing batch script lives, and ^ is the batch file continuation character.

When calling application from PowerShell use the following argument format:

$title='Local Build Server'
$ccnetfolder = SmartConvertPath -path 'C:\Projects\MAST.Vs2008\tools\DotNet2\CruiseControl.NET'
$ccnetconfigpath = SmartConvertPath -path 'C:\Projects\MAST.Vs2008\tools\DotNet2\CruiseControl.NET\server\MacawSolutionsFactory-ccnet.config'
& C:\Projects\MAST.Vs2008\tools\DotNet2\CCNetBuildStation\Macaw.SolutionsFactory.FactoryIdeTools.CCNetBuildStation.exe `
	/title="$title" /ccnetfolder="$ccnetfolder" /ccnetconfigpath="$ccnetconfigpath" /webserverport="$webserverport"


  • .NET 2.0 Framework runtime installed.
  • CruiseControl.NET (


This application has been developed and tested on Windows Server 2003 32 bits version. No test have been performed yet to test the compatibility with XP. Vista and Windows Server 2008 on 32/64 bits. Any confirmation on this is appreciated.

Used software

  • This application uses the NDesk.Options code for parsing command-line options. This code can be downloaded at:
  • The Casini web server is used as stand-alone web server. The code base of the .NET 3.5 Framework version (Cassini-v3.5) can be found at: I recompiled this code base using the .NET 2.0 Framework, so it can be used with a .NET 2.0 Framework runtime only installation as well.

In case this would give problems, check out Cassini-v2.1 which can be found at

Possible issues

This section describes possible issues that can occur in using the CCNetBuildStartion.

Casini port in use or remoting exception in apllication log window

When the application did not terminate normally, the started Cassini or CruiseControl.NET applications could be still running. You can terminate them manually through the Tasks window:
Kill the processes ccnet.exe and Cassini-v35.exe.

It is also possible that two instances of the application are started. If this is required, make sure that the web server port and remoting port differ in the configuration of the two instances.

Remoting Port problem

When you get the error "Unable to connect to CruiseControl.NET server. Please either start the server or check the url." there is a mismatch between the port the CCnet.exe application is started, and the port value specified in CCNet configuration file.
To solve this issue make sure that the port value specified in the file <ccnetfolder>\server\ccnet.exe.config is equal to the port value in the file <ccnetfolder>\webdashboard\dashboard.config.

See the output log (the bottom pane in the screenshot above) for the line containing the port to use in the file <ccnetfolder>\webdashboard\dashboard.config.

This line is: [CCNET Server:INFO] CruiseManager: Listening on url: tcp://

See the fragments below for the sections in the two files to check.

<?xml version="1.0" encoding="utf-8"?>
	<!-- Defines the port and protocol that the ccnet server will use to service remote requests -->
				<channel ref="tcp" port="21236">
						<formatter ref="binary" typeFilterLevel="Full"/>

<?xml version="1.0" encoding="utf-8" ?> 
			<!-- Update this list to include all the servers you want to connect to. NB - each server name must be unique -->
			<server name="local" url="tcp://localhost:21234/CruiseManager.rem" allowForceBuild="true" allowStartStopBuild="true" />

Last edited Feb 8, 2009 at 11:55 PM by svdoever, version 9