public void ExecutaBuild(ComandoExecutar comando) { var processInfo = new ProcessStartInfo("cmd.exe", "/c " + comando.Comando); processInfo.CreateNoWindow = true; processInfo.UseShellExecute = false; processInfo.RedirectStandardError = true; processInfo.RedirectStandardOutput = true; processInfo.WorkingDirectory = comando.Diretorio; var process = Process.Start(processInfo); //process.WaitForExit(); process.PriorityClass = ProcessPriorityClass.RealTime; var output = string.Empty; var erro = string.Empty; while (!process.StandardOutput.EndOfStream) { output += process.StandardOutput.ReadLine() + "\n"; //ListaErrosPendentes.Add(linha); // do something with line } //String output = process.StandardOutput.ReadToEnd(); //String erro = process.StandardError.ReadToEnd(); Console.WriteLine("output>>" + output); Console.WriteLine("error>>" + erro); Icon icone = AutoBuild.Properties.Resources.success; if (!erro.Equals("") || output.IndexOf("ERR") > 0) { icone = SystemIcons.Error; ListaErrosPendentes.Add(erro + output); } else if (output.IndexOf("WRN") > 0) { icone = SystemIcons.Exclamation; ListaErrosPendentes.Add(erro + output); } if (!erro.Equals("") || !output.Equals("")) { ShowNotification("Resultado build " + comando.Nome, erro + output, icone); } Console.WriteLine("ExitCode: {0}", process.ExitCode); process.Close(); }
private void addFilaBuild(ComandoExecutar comandoExecutar) { try { if (FindBuildByPath(comandoExecutar.Diretorio) == null) { buildsPendentes.Add(comandoExecutar); } } catch (Exception ex) { MessageBox.Show("Erro addFilaBuild " + ex.Message + " - " + ex.InnerException); } }