我有一个用于构建.net解决方案的批处理文件,并且正在尝试使详细程度降至最低,该详细程度仅显示正在构建的项目以及任何警告和/或错误,但也希望最后查看摘要以及警告数量错误以及构建时间。
我已经尝试了详细程度和/v和/cpl的多种组合,但是看来您只能得到太多的输出+摘要或正确的最小输出而没有摘要
有任何想法吗?
提前致谢
最佳答案
您可以按照此处的说明编写自定义记录器:http://msdn.microsoft.com/en-us/library/ms171471.aspx
这里有一些代码可以帮助您入门:
public class SummaryLogger : Logger
{
int warningCount = 0;
int errorCount = 0;
public override void Initialize(IEventSource eventSource)
{
eventSource.WarningRaised += eventSource_WarningRaised;
eventSource.ErrorRaised += eventSource_ErrorRaised;
eventSource.BuildFinished += eventSource_BuildFinished;
}
void eventSource_WarningRaised(object sender, BuildWarningEventArgs e)
{
warningCount++;
Console.WriteLine("Warning: " + e.Message);
}
void eventSource_ErrorRaised(object sender, BuildErrorEventArgs e)
{
errorCount++;
Console.WriteLine("Error: " + e.Message);
}
void eventSource_BuildFinished(object sender, BuildFinishedEventArgs e)
{
Console.WriteLine("MSBuild Finished: " + errorCount + " errors | " + warningCount + " warnings.");
}
}
该记录器记录警告,错误并汇总错误和警告的数量。您需要为时间和项目添加一些代码,因此这正是您想要的。
要使用它,您可以调用MSBuild并添加以下参数:
/nologo /noconsolelogger /logger:pathTo/SummaryLogger.dll
关于msbuild:无论如何显示摘要并使用verbosity = minimal,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7729030/