Задача такова: необходимо из одного приложения запустить консольное приложение, и считать все что оно выводит
Ниже максимально упрощенный код, который воспроизводит эту задачу
Консольное приложение
static void Main(string[] args)
{
foreach (string arg in args)
Console.WriteLine(arg);
Console.ReadKey(); // проблема из-за этого
}
приложение, которое считывает
static void Main(string[] args)
{
Process process = new Process
{
StartInfo = new ProcessStartInfo
{
FileName = "App.exe",
Arguments = "1 2 3 4 5",
CreateNoWindow = true,
UseShellExecute = false,
RedirectStandardOutput = true
}
};
process.Start();
Console.WriteLine(process.StandardOutput.ReadToEnd());
Console.ReadKey();
}
Так вот из-за того, что первое приложение ожидает нажатия клавиши, оно вылетает и появляется окно с ошибкой, проблема в том, что возможности изменить первое приложение нет, поэтому возникает вопрос, можно ли как то избежать данной проблемы? Проблема именно в появлении окна с ошибкой, так как после закрытия этого окна в итоге выводится то что нужно
Ну и возникающая ошибка: Additional information: Невозможно считывать клавиши, когда любое приложение не имеет консоли или ввод данных на консоли был переадресован из файла. Попробуйте использовать Console.Read.