У меня проблема, подобная уже решенной здесь . Но я не могу понять, как проблема была решена. У меня есть программа, которая получает параметр определить входной и выходной файл. Запустив это из строки Commend, все работает нормально:
D:\Tools\siftDemoV4>siftWin32.exe -display < D:\tmp\SrcPgm\image000.pbm > result.pbm
Но работает через System.Diagnostics.Process, не работает. Я получаю сообщение об ошибке «Недопустимый аргумент командной строки: <», и после этого возникает исключение System.InvalidOperationException. </p>
var process = new Process()
{
StartInfo =
{
Arguments = string.Format(@"-display < {0} > {1}", configuration.Source,
configuration.Destination),
FileName = configuration.PathToExternalSift,
RedirectStandardError = true,
RedirectStandardInput = true,
RedirectStandardOutput = true,
UseShellExecute = false,
CreateNoWindow = true,
ErrorDialog = false,
}
};
process.EnableRaisingEvents = true;
process.Exited += OnProcessExited;
process.OutputDataReceived += new DataReceivedEventHandler(process_OutputDataReceived);
process.ErrorDataReceived += new DataReceivedEventHandler(process_ErrorDataReceived);
process.Start();
process.BeginOutputReadLine();
process.BeginErrorReadLine();
Я уже пытался записать в process.StandardInput после того, как вызвал process.Start (), но при использовании отладчика внешняя программа была когда-то уже завершена (HasExited == true).
Кто-нибудь может объяснить, как я могу передать эти специальные "<" ">" параметры в программу?
С наилучшими пожеланиями!
Кстати, я несколько раз проверял путь, они верны.