Написание пользовательской задачи MSBuild, которая использует другую пользовательскую задачу MSBuild.

Я написал пользовательскую задачу MSBuild, назовите ее TaskA, которая анализирует файл и выполняет некоторую обработку. Теперь я хочу написать еще одну задачу MSBUild, назовем ее TaskB, в которой используется TaskA. Я знаю, что могу использовать TaskA как обычный класс и просто вызывать его метод execute из TaskB. Но вы считаете, что это правдоподобно? Будут ли по-прежнему регистрироваться сообщения журнала от TaskA при выполнении TaskB?


person Draco    schedule 31.03.2009    source источник


Ответы (1)


Да, это правдоподобно, и да, сообщения журнала от TaskA все равно будут регистрироваться. Не забудьте установить для taskA.BuildEngine значение taskB.

public class TaskA : Task
{
    public override bool Execute()
    {
        Log.LogMessage("Task A");

        return true;
    }
}

public class TaskB : Task
{
    public override bool Execute()
    {
        Log.LogMessage("Task B");

        TaskA taskA = new TaskA();
        taskA.BuildEngine = BuildEngine;

        taskA.Execute();

        return true;
    }
}
person Julien Hoarau    schedule 31.03.2009