2013-08-01 21 views
6

Ho il programma pro1.exe che legge dal file di input, calcola il risultato e lo scrive nel file di output. Ora sto programma test.exe, che mette alla prova su diversi test di scrittura (riempimento in ingresso, eseguire Pro1 utilizzando Process.Start() e si confronta con uscita supposta)Process.Start() non funziona correttamente

problema è il seguente: dopo l'esecuzione pro1.exe file di output è vuoto. Tuttavia, se lo eseguo manualmente, scrive sul file di output.

Ecco il codice come eseguo Pro1:

ProcessStartInfo processInfo = new ProcessStartInfo(); 
    processInfo.FileName = _applicationName; 
    processInfo.ErrorDialog = true; 
    processInfo.UseShellExecute = false; 
    processInfo.RedirectStandardOutput = true; 
    processInfo.RedirectStandardError = true; 

    Process proc = Process.Start(processInfo); 

_applicationName è un percorso completo del file exe.

Nel debug vedo, quel processo sta avviando e terminando senza errori.

risposta

9

Ciò è spesso causato dall'avere un diverso WorkingDirectory. È probabile che sia necessario impostare la proprietà WorkingDirectory in modo che corrisponda al percorso dell'eseguibile.

Senza questo, quando UseShellExecute == false, la directory di lavoro potrebbe non essere il percorso locale dell'applicazione.

+1

Wow ... Grazie mille, l'impostazione 'WorkingDirectory' ha aiutato – Vita1ij

Problemi correlati