2016-10-26 6 views
3

ケーキスクリプトでプロジェクトをコンパイルするためにコードを使用しています。ビルドログをテキストファイルに入れたいと思っています。msbuildからビルドログを取得するには?

if(IsRunningOnWindows()) 
{ 

    // Use MSBuild 
    foreach(string currenproject in projectslocation) 
    { 
    MSBuild(currenproject, new MSBuildSettings() 
    .SetConfiguration(configuration) 
    .SetVerbosity(Verbosity.Minimal)); 

    } 

} 

ビルドログファイルを作成することは可能ですか?

答えて

5

MSBuildFileLoggerにあります。この拡張メソッドを使用すると、ArgumentCustomizationルートに移動する必要がなくなります。

このようなものにあなたをできるようにする必要があります

MSBuild("./myproject.sln", new MSBuildSettings() 
    .AddFileLogger(new MSBuildFileLogger { 
     LogFile = "./errors.txt", 
     MSBuildFileLoggerOutput = MSBuildFileLoggerOutput.ErrorsOnly 
}); 

あなたはケーキのMyGet feedを使用して、今日ケーキのプレリリースv0.17.0バージョンを取得することができます。

で行われたようにNuget CLIを使用してCakeをインストールしている場合は、nuget installステートメントに-Source https://www.myget.org/F/cake/api/v3/index.jsonを追加します。その後

:あなたはケーキのバージョンを固定するpackage.configを使用している場合

  • その後、バージョン0.17.0-alpha0092以降を指定します。あなただけCakeパッケージIDを使用してインストールする場合

  • 、あなたはどちらかだけの-PreReleaseを追加し、それがフィードから最新バージョンを取得したりも-Version 0.17.0-alpha009パラメータを指定します。

+0

それは素晴らしいポイントです! – devlead

2

WithLogger(MSBuildSettings, ​string loggerAssembly, ​string loggerClass, ​string loggerParameters) MSBuildSettings拡張メソッドを使用できます。このメソッドを使用して、カスタムMSBuildログを指定できます。

現在、MSBuild標準ファイルロガーの設定はありませんが、ArgumentCustomizationを使用しても使用できます。私たちは、あなたが通過することを可能にする新しい拡張メソッドの使用を可能にするこのfeature requestを実装(うまくいけば、我々は今週末にリリースされます)ケーキ(0.17.0)の次のリリースで来る

if(IsRunningOnWindows()) 
{ 
    DirectoryPath logPath = MakeAbsolute(Directory("./logfiles")); 
    // Use MSBuild 
    foreach(string currenproject in projectslocation) 
    { 
     FilePath logFile = logPath.CombineWithFilePath(string.Format(
           "{0}.log", 
           currenproject)); 

     MSBuild(currenproject, new MSBuildSettings { 
      ArgumentCustomization = args=>args.Append(
       "/flp:\"logfile={0};verbosity={1}\"", 
       logFile.FullPath, 
       Verbosity.Diagnostic 
      ) 
     }.SetConfiguration(configuration) 
     .SetVerbosity(Verbosity.Minimal)); 
    } 
} 
+1

@vijayこれはあなたが探していたものですか?不明な点についてコメントをすることは良い質問です。明確にしようとします。 – devlead

関連する問題