private bool NuGetOverlay(string package, string version, string packageDirectory) { var process = AsyncProcess.Start(_nugetExe, string.Format(@"overlay ""{0}"" -Version {1} -OverlayPackageDirectory ""{2}""", package, version, packageDirectory)); foreach (var txt in process.StandardOutput) { if (!string.IsNullOrEmpty(txt)) { Log.LogMessage("NuGet:{0}", txt); } } foreach (var txt in process.StandardError) { if (!string.IsNullOrEmpty(txt)) { if (process.ExitCode != 0) { Log.LogError("NuGet Error:{0}", txt); } else { Log.LogWarning("NuGet Error:{0}", txt); } } } return(process.ExitCode == 0); }
public static AsyncProcess Start(ProcessStartInfo startInfo, IDictionary environment) { startInfo.RedirectStandardError = true; startInfo.RedirectStandardOutput = true; startInfo.UseShellExecute = false; if (environment != null) { foreach (var i in environment.Keys) { startInfo.EnvironmentVariables[(string)i] = (string)environment[i]; } } var process = new Process { StartInfo = startInfo }; var result = new AsyncProcess(process); process.EnableRaisingEvents = true; // set up std* access process.ErrorDataReceived += (sender, args) => result._stdError.Add(args.Data); process.OutputDataReceived += (sender, args) => result._stdOut.Add(args.Data); process.Exited += (sender, args) => { result._stdError.Completed(); result._stdOut.Completed(); }; process.Start(); process.BeginErrorReadLine(); process.BeginOutputReadLine(); return result; }
public static AsyncProcess Start(ProcessStartInfo startInfo, IDictionary environment) { startInfo.RedirectStandardError = true; startInfo.RedirectStandardOutput = true; startInfo.UseShellExecute = false; if (environment != null) { foreach (var i in environment.Keys) { startInfo.EnvironmentVariables[(string)i] = (string)environment[i]; } } var process = new Process { StartInfo = startInfo }; var result = new AsyncProcess(process); process.EnableRaisingEvents = true; // set up std* access process.ErrorDataReceived += (sender, args) => result._stdError.Add(args.Data); process.OutputDataReceived += (sender, args) => result._stdOut.Add(args.Data); process.Exited += (sender, args) => { result._stdError.Completed(); result._stdOut.Completed(); }; process.Start(); process.BeginErrorReadLine(); process.BeginOutputReadLine(); return(result); }