|
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
|
|