@@ -759,6 +759,12 @@ void RunMSBuildWithDotNet(
759759 // .SetVerbosity(Verbosity.Diagnostic)
760760 ;
761761
762+ var loggerArg = GetMSBuildForwardingLoggerPath ( ) ;
763+ if ( loggerArg != null )
764+ {
765+ msbuildSettings . WithArgumentCustomization ( args => args . Append ( loggerArg ) ) ;
766+ }
767+
762768 if ( warningsAsError )
763769 {
764770 msbuildSettings . TreatAllWarningsAs ( MSBuildTreatAllWarningsAs . Error ) ;
@@ -847,6 +853,12 @@ void RunTestWithLocalDotNet(string csproj, string config, string pathDotnet = nu
847853 // Verbosity = Cake.Common.Tools.DotNetCore.DotNetCoreVerbosity.Diagnostic,
848854 ArgumentCustomization = args =>
849855 {
856+ var loggerArg = GetMSBuildForwardingLoggerPath ( ) ;
857+ if ( loggerArg != null )
858+ {
859+ args . Append ( loggerArg ) ;
860+ }
861+
850862 args . Append ( $ "-bl:{ binlog } ") ;
851863 if ( maxCpuCount > 0 )
852864 {
@@ -948,3 +960,25 @@ void ProcessTFMSwitches()
948960 DeleteFile ( "Directory.Build.Override.props" ) ;
949961 }
950962}
963+
964+ string GetMSBuildForwardingLoggerPath ( )
965+ {
966+ if ( ! IsCIBuild ( ) )
967+ return null ;
968+
969+ // Download and extract MSBuild logger
970+ var loggerUrl = "https://vstsagenttools.blob.core.windows.net/tools/msbuildlogger/3/msbuildlogger.zip" ;
971+ var loggerDir = MakeAbsolute ( Directory ( "./artifacts/msbuildlogger" ) ) ;
972+ EnsureDirectoryExists ( loggerDir ) ;
973+ var loggerZip = loggerDir . CombineWithFilePath ( "msbuildlogger.zip" ) ;
974+
975+ if ( ! FileExists ( loggerZip ) )
976+ {
977+ DownloadFile ( loggerUrl , loggerZip . FullPath ) ;
978+ Unzip ( loggerZip . FullPath , loggerDir . FullPath ) ;
979+ }
980+
981+ var loggerArg = $ "-dl:CentralLogger,\" { loggerDir } /Microsoft.TeamFoundation.DistributedTask.MSBuild.Logger.dll\" *ForwardingLogger,\" { loggerDir } /Microsoft.TeamFoundation.DistributedTask.MSBuild.Logger.dll\" ";
982+
983+ return loggerArg ;
984+ }
0 commit comments