2011-08-12 2 views
0

이 문제는 이상합니다. 전에는 그런 일이 한번도 없었습니다. 7zip을 사용하여 프로그램에서 파일을 추출하려고합니다. 이전에 다른 프로그램에서이 작업을 수행했으며 결코 그렇게 어렵지 않았습니다. 그래서 복사에 내 코드를 붙여 :이 코드는 내 응용 프로그램이 종료 실행 직후다른 프로세스를 실행 한 후 C# 프로그램이 종료됩니다.

Process process = new Process 
{ 
    StartInfo = 
    { 
     CreateNoWindow = true, 
     WindowStyle = ProcessWindowStyle.Hidden, 
     FileName = "7za.exe", 
     UseShellExecute = false, 
     ErrorDialog = false, 
     Arguments = "x -y -o\"" + outputPath +"\" \""+ inputFile +"\"", 
     RedirectStandardOutput = false, 
    } 
}; 
process.Start(); 

. 그냥 사라집니다. 확실히 의미가 없습니다! 나는이 단계를 기능에 사용하고 도망 쳤다. 즉시 process.Start();이 프로그램을 종료하고 Visual C#으로 나를 돌려주었습니다. 어떤 Application.Exit(); 또는 아무것도 실행하지 못했지만, 그냥 가버 렸어. Visual C#에서 나를 기다리는 동안 오류가 발생하지 않았습니다. 그래서 MessageBox.Show("Test");을 끝에 추가하려고했습니다. 단계 모드로 실행하십시오. process.Start();이 MessageBox 코드를 실행하자마자 다시 사라졌습니다. 난 잘

+0

예외가 발생합니까? 'Process'가 그들을 던져 버릴 수 있습니다 ... – Oded

+0

WaitForExit()이 필요합니다 ... –

답변

3

이 경우 ... Process.Start를() 후

+0

WaitForExit을 시도했지만 여전히 사라졌습니다. Windows Forms 응용 프로그램이므로 종료하면 안됩니다. try try catch 문을 시도했지만 오류가 발견되지 않았습니다. 어쨌든, 나는 잘못된 질문을 던졌어. 내 잘못이 작동하지 않았기 때문에 귀하의 답변을 최고의 답변으로 표시하겠습니다. –

+0

문제가 무엇인지 설명해 주시겠습니까? 그런 식으로이 질문을하는 사람들은 어둠 속에서 해결책을 찾지 않을 것입니다. – Stijn

+0

나는 그것이 나에게 상당히 구체적이라고 생각한다. 이 오류를 일으키는 FileSystemWatcher가있는 위치로 파일을 추출하는 위치 : http://stackoverflow.com/questions/5195086/application-just-closes-no-error-or-smth -when-run-from-vs2010 –

1

해보십시오 process.WaitForExit() (종료 신청 전에 약 0.2 초 동안 보여 주었다) 메시지 상자에서 확인을 클릭하지 않았다 코드가 Main()에 있으면 코드 실행이 완료되면 완료됩니다. 이 스 니펫이 포함 된 전체 코드를 게시 할 수 있습니까? 프로세스가 프로세스가 성공 여부를 알 수있는 ExitCode 확인

process.WaitForExit(); 

을 포함하여 끝날 때까지

당신은 기다릴 수 있습니다. 그리고 표준 출력의 출력을 체크하기 위해 항상 StandardError를 리다이렉트 할 수 있습니다.

process.StartInfo.RedirectStandardError = true; 
string error = process.StandardError.ReadToEnd(); 
+0

여전히 Start()를 호출해야합니다. –

+0

내 대답을 편집하십시오. 감사합니다 Peter Kelly – robertpnl

관련 문제