using System;
using Exortech.NetReflector;
using ThoughtWorks.CruiseControl.Core;
namespace ThoughtWorks.CruiseControl.Sample.Builder
{
[ReflectorType("mybuilder")]
public class NAntBuilder : ITask
{
public void Run(IIntegrationResult result)
{
Console.WriteLine("Hello World!");
}
}
}
Just a slight gotcha: the custom plugin part of the dll name, the ReflectorType name, and the name used in the config file must all match exactly otherwise you'll see XML config errors like:
"Configuration document is likely missing Xml nodes required for properly populating CruiseControl"
In others words, if your custom plugin is called "myproject" then the corresponding entities have to be:
1.) DLL name: ccnet.myproject.plugin.dll
2.) code markup: [ReflectorType ("myproject")]
3.) config file:
<project>
<tasks>
<myproject>
...
</myproject>
</tasks>
</project>