5

我正在尝试调试 MSBuild 任务,并且我知道有一些方法可以从自定义任务中写入 MSBuild 日志,但我忘记了如何。

4

2 回答 2

8

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

Log.LogMessage("My message");
于 2008-10-02T17:28:36.803 回答
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.
    }
}

如今,为了方便起见,我可能会将其转换为扩展方法。

于 2009-05-05T07:03:27.470 回答