@@ -187,12 +187,12 @@ public class SystemBuildActions : IBuildActions
187187
188188 bool IBuildActions . FileExists ( string file ) => File . Exists ( file ) ;
189189
190- private static ProcessStartInfo GetProcessStartInfo ( string exe , string arguments , string ? workingDirectory , IDictionary < string , string > ? environment , bool redirectStandardOutput )
190+ private static ProcessStartInfo GetProcessStartInfo ( string exe , string arguments , string ? workingDirectory , IDictionary < string , string > ? environment )
191191 {
192192 var pi = new ProcessStartInfo ( exe , arguments )
193193 {
194194 UseShellExecute = false ,
195- RedirectStandardOutput = redirectStandardOutput
195+ RedirectStandardOutput = true
196196 } ;
197197 if ( workingDirectory is not null )
198198 pi . WorkingDirectory = workingDirectory ;
@@ -204,40 +204,22 @@ private static ProcessStartInfo GetProcessStartInfo(string exe, string arguments
204204
205205 int IBuildActions . RunProcess ( string exe , string args , string ? workingDirectory , System . Collections . Generic . IDictionary < string , string > ? env , BuildOutputHandler onOutput , BuildOutputHandler onError )
206206 {
207- var pi = GetProcessStartInfo ( exe , args , workingDirectory , env , true ) ;
208- using var p = new Process
209- {
210- StartInfo = pi
211- } ;
212- p . StartInfo . RedirectStandardError = true ;
213- p . OutputDataReceived += new DataReceivedEventHandler ( ( sender , e ) => onOutput ( e . Data ) ) ;
214- p . ErrorDataReceived += new DataReceivedEventHandler ( ( sender , e ) => onError ( e . Data ) ) ;
215-
216- p . Start ( ) ;
207+ var pi = GetProcessStartInfo ( exe , args , workingDirectory , env ) ;
208+ pi . RedirectStandardError = true ;
217209
218- p . BeginErrorReadLine ( ) ;
219- p . BeginOutputReadLine ( ) ;
220-
221- p . WaitForExit ( ) ;
222- return p . ExitCode ;
210+ return pi . ReadOutput ( out _ , onOut : s => onOutput ( s ) , onError : s => onError ( s ) ) ;
223211 }
224212
225213 int IBuildActions . RunProcess ( string cmd , string args , string ? workingDirectory , IDictionary < string , string > ? environment )
226214 {
227- var pi = GetProcessStartInfo ( cmd , args , workingDirectory , environment , false ) ;
228- using var p = Process . Start ( pi ) ;
229- if ( p is null )
230- {
231- return - 1 ;
232- }
233- p . WaitForExit ( ) ;
234- return p . ExitCode ;
215+ var pi = GetProcessStartInfo ( cmd , args , workingDirectory , environment ) ;
216+ return pi . ReadOutput ( out _ , onOut : Console . WriteLine , onError : null ) ;
235217 }
236218
237219 int IBuildActions . RunProcess ( string cmd , string args , string ? workingDirectory , IDictionary < string , string > ? environment , out IList < string > stdOut )
238220 {
239- var pi = GetProcessStartInfo ( cmd , args , workingDirectory , environment , true ) ;
240- return pi . ReadOutput ( out stdOut , printToConsole : false ) ;
221+ var pi = GetProcessStartInfo ( cmd , args , workingDirectory , environment ) ;
222+ return pi . ReadOutput ( out stdOut , onOut : null , onError : null ) ;
241223 }
242224
243225 void IBuildActions . DirectoryDelete ( string dir , bool recursive ) => Directory . Delete ( dir , recursive ) ;
0 commit comments