2017-02-16 28 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 }) 
);