В качестве альтернативы XML, о котором вы уже упоминали, вы можете использовать удаленное соединение, как это делает приложение CCTray. Если вы ссылаетесь на ThoughtWorks.CruiseControl.Remote.dll из папки CruiseControl.NET \ server, вы можете создать экземпляр CruiseServerRemotingClient и использовать его для извлечения информации с сервера.
Следующий фрагмент кода выводит список проектов на сервере и их сборки статусов:
CruiseServerRemotingClient client = new CruiseServerRemotingClient("tcp://ccnetserver:21234/CruiseManager.rem");
ProjectStatus[] statusList = client.GetProjectStatus();
foreach (ProjectStatus status in statusList)
{
Console.WriteLine("{0}: {1}", status.Name, status.BuildStatus);
}
Вы также могли бы извлечь журнал для последней сборки в формате XML следующим образом:
string buildName = client.GetLatestBuildName("Jasenje");
Console.WriteLine(client.GetLog("Jasenje", buildName));
Мне не удалось найти никакой реальной документации для API, но, по крайней мере, есть комментарии XML с краткими описаниями методов и параметров.
Посмотрите на этот вопрос для получения ответов: http://stackoverflow.com/questions/3467364/is-there-an-api-for-cruise-control-net –