В целях модульного тестирования я обертываю регистратор вокруг класса помощника
public static void Log(ITask task, string message, MessageImportance importance)
{
try
{
BuildMessageEventArgs args = new BuildMessageEventArgs(message, string.Empty,
task.ToString(), importance);
task.BuildEngine.LogMessageEvent(args);
}
catch (NullReferenceException)
{
// Don't throw as task and BuildEngine will be null in unit test.
}
}
В настоящее время я бы, вероятно, преобразовал это в метод расширения для удобства.