2017-02-16 56 views
3

我正在使用下面的Cake脚本来编译我的C#项目。在执行脚本时,PowerShell中显示的警告消息很少。我喜欢登录的警告在一个文本文件,该文件是在一个物理位置(例如:。D:\WarningReport.txt)下面 是蛋糕脚本任务,我用它来编译项目从蛋糕脚本中将警告消息记录在文本文件中

Task("Build") 
    .Does(() => 
{ 
    if(IsRunningOnWindows()) 
    { 
     MSBuild("./src/Example.sln", settings => 
     settings.SetConfiguration(configuration)); 
    } 
}); 

我想补充类似下面,

LogWarningMessagesTo("D:\WarningReportes.txt"); 
LogErrorMessagesTo("D:\ErrorReportes.txt"); 

要登录,使用AddFileLogger扩展方法上MSBuildSettings参数当然可以如何做到这一点?

回答

5

如果是从的MSBuild别名警告和错误。

基本上改变

MSBuild("./src/Example.sln", settings => 
    settings.SetConfiguration(configuration)); 

MSBuild("./src/Example.sln", settings => 
    settings.SetConfiguration(configuration) 
      .AddFileLogger(new MSBuildFileLogger { 
       LogFile ="D:/WarningReportes.txt", 
       MSBuildFileLoggerOutput = MSBuildFileLoggerOutput.WarningsOnly }) 
      .AddFileLogger(new MSBuildFileLogger { 
       LogFile ="D:/ErrorReportes.txt", 
       MSBuildFileLoggerOutput = MSBuildFileLoggerOutput.ErrorsOnly }) 
);