我如何从自定义的MSBuild任务中将输出写入控制台?

5

我正在尝试调试一个MSBuild任务,我知道有一种方法可以在自定义任务中从MSBuild日志中写入内容,但是我忘记了具体步骤。

2个回答

9

基础的Task类有一个Log属性,您可以使用:

Log.LogMessage("My message");

1
为了单元测试的目的,我将记录器包装在一个辅助类中。
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.
    }
}

现在,我可能会将其转换为扩展方法以方便使用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接