인터넷에서 찾을 수없는 질문을해야합니다. 프로세스를 사용하여 C# 응용 프로그램에서 cmd를 엽니 다. 몇 가지 명령을 전달해야하지만 각 명령 끝에서 나는이 명령은 그래서 난 다른를 계속할 수있었습니다 완료 있는지 확인해야합니다! 있습니다 .. System.Diagnostics 네임으로 그 가능성이 얼마나 ... 여기에 내가 시도 내 코드 ... 종료에 대한터미널에서 특정 명령을 수행 한 후 계속하십시오.
var startInfo = new ProcessStartInfo
{
FileName = "cmd.exe",
RedirectStandardInput = true,
RedirectStandardOutput = true,
UseShellExecute = false,
CreateNoWindow = false,
WorkingDirectory = @"E:/Visual Studio 2013/" + project_Name + "/packages/NUnit.ConsoleRunner.3.4.1/tools"
};
var process = new Process { StartInfo = startInfo };
process.Start();
process.StandardInput.WriteLine("nunit3-console.exe E:/Debug/Report_Testing.dll");
process.WaitForExit();
대기는 여기 무한히 멈추고이 코드 줄을 전달할 수 없습니다. 이 문제를 해결하는 방법은 무엇입니까?
당신을 이해할 수 없습니다. 죄송합니다. 명령이 완료되면 알고 싶습니다 .../k 옵션은 무엇을합니까? 당신은 내가 서예 선에 그것을 추가하기를 원합니 까? –
@ OmarEl-elamy 당신의 프로세스는 nunit 러너가 아닌'cmq'을 시작합니다. 그래서 종료를 위해 프로세스에 연결됩니다. 코드에서 그것을 닫으려면 명령 행에'exit'을 보내야합니다. 그러나 나는 그것이 정말로 우아 할 것이라고 생각하지 않습니다. –
테스트 러너는 cmd의 ** 하위 **로 실행되므로 러너가 종료 되더라도 상위는 실행되지 않습니다. –