Имя: Пароль:
IT
Админ
c# запускаю Process, а перехватить вывод не получается
0 qeos
 
22.05.15
12:38
// фиг знает какую секцию ставить.

подскажите по C# 4.5

есть такой код:

            var proc = new Process();

            var psInfo = proc.StartInfo;
            psInfo.FileName = FullNamePackerExe;
            psInfo.Arguments = CommanLineParameter + " \"" + _archiveFileName + "\" \"" + _sourceFileName + "\" " + baseFolder;
            psInfo.WindowStyle = ProcessWindowStyle.Hidden;
            psInfo.RedirectStandardOutput = false;

            string output = "";
            string errors = "";

            StreamReader outreader;
            StreamReader errreader;

            outreader = proc.StandardOutput;
            errreader = proc.StandardError;

            try
            {
                proc.Start();

                if (proc != null)
                    proc.WaitForExit();

            }
            catch (Exception ee)
            {
                output = outreader.ReadToEnd();
                errors = errreader.ReadToEnd();
                proc.WaitForExit();

                AddLogString("Ошибка в процессе сжатия RAR: " + ee.Message + "\r\n" + output + "\r\n" + errors);
            }

            if (proc.ExitCode != 0)
            {
                output = outreader.ReadToEnd();
                errors = errreader.ReadToEnd();
                proc.WaitForExit();

                AddLogString("Ошибка в процессе сжатия RAR ExitCode: " + proc.ExitCode + "\r\n" + output + "\r\n" + errors);
            }


не могу получить данные из stdout пишет ошибку:
2015-05-22 12:28:14    Возникла ошибка в процессе выполнения для базы [SQL / ZUP]: Поток StandardOut не был перенаправлен или процесс еще не был запущен.


пробовал и другие варианты, примерно одно и тоже..
ЧЯДНТ?
1 Лефмихалыч
 
22.05.15
12:55
psInfo.RedirectStandardOutput = false;
?
2 qeos
 
22.05.15
13:06
RedirectStandardOutput
Возвращает или задает значение, позволяющее определить, записываются ли выходные данные приложения в поток Process.StandardOutput.

но не работает ни так, ни так..
3 Лефмихалыч
 
22.05.15
13:11
а зачем в if (proc.ExitCode != 0)
опять
  proc.WaitForExit();

?
4 qeos
 
22.05.15
13:23
эм... незнаю.. само добавилось )))
5 qeos
 
22.05.15
13:25
похоже изза этого была проблема RedirectStandardOutput