Запуск консольного приложения c # из другого консольного приложения c #

#c# #visual-studio #visual-studio-code

#c# #visual-studio #visual-studio-code

Вопрос:

Я хочу запустить консольное приложение (B) из другого консольного приложения (A). Но я хочу запустить консольное приложение (B) из другого окна консоли, а исходное окно (из консольного приложения A) закрыть.

Я попытался погуглить, но, похоже, ни у кого нет такой же проблемы. Я новичок в c #, я самоучка и мало что знаю об этом.

Кроме того, я не знаю, как запустить какое-либо приложение с помощью кода.

Спасибо за помощь и извините за мой английский: D

Ответ №1:

Пример из MSDN

 // Start the child process.
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "ConsoleApplication.exe"; // Need full path of application
p.Start();
string output = p.StandardOutput.ReadToEnd();
p.WaitForExit();
 

Комментарии:

1. Буквально ответ из учебника

2. Как это работает? Я не понимаю, что происходит в коде:(….. Спасибо за ответ! : D

Ответ №2:

Я хочу запустить консольное приложение (B) из другого консольного приложения (A). Но я хочу запустить консольное приложение (B) из другого окна консоли, а исходное окно (из консольного приложения A) закрыть.

Стандартный процесс.Вызов Start() должен выполнить эту работу.

Консольное приложение A:

 public static void Main(string[] args)
{
    Console.WriteLine("This is Console App 'A'...");

    string fullPathToB = @"C:UsersmikesDocumentsVisual Studio 2017ProjectsCS_Console_Scratch2CS_Console_Scratch2binDebugConsoleAppB";
    Process.Start(fullPathToB);

    // this console app will close when we hit the end bracket for Main()
}
 

Консольное приложение B:

 public static void Main(string[] args)
{
    Console.WriteLine("This is Console App 'B'...");

    Console.WriteLine("Press Enter to Quit");
    Console.ReadLine();
}
 

Но вы увидите разные результаты в зависимости от того, как было запущено консольное приложение «A». Если вы дважды щелкните «A» в проводнике, окно консоли для «A» закроется, и вы увидите только «B».

Если вы уже находитесь в командной строке и запускаете «A», то эта консоль останется открытой, и вы увидите ее и «B» вместе. Оба сценария показаны ниже.

Вывод при запуске «A» из проводника:

введите описание изображения здесь

Вывод при запуске «A» из существующей командной строки:

введите описание изображения здесь

Комментарии:

1. Это действительно полезно, и я понимаю, что здесь происходит!! Но я вижу, что вы используете EXE-файлы, и я не знаю, как их создать. Спасибо за помощь: D

2. .exe s создаются всякий раз, когда вы СОЗДАЕТЕ или ЗАПУСКАЕТЕ приложение. Внутри папки вашего проекта вы найдете вложенную папку с именем bin . Внутри этой вложенной папки будут debug и / или release вложенные папки (в зависимости от того, в каком режиме у вас работает Visual Studio). В этих двух папках вы найдете последнюю скомпилированную версию вашего .exe файла для вашего приложения.