2013-08-01 5 views
6

Ich habe Programm pro1.exe, liest aus der Eingabedatei, berechnet das Ergebnis und schreibt es in die Ausgabedatei. Jetzt schreibe ich Programm test.exe, dass es auf verschiedenen Tests Tests (fill-Eingang, laufen pro1 mit Process.Start() und vergleicht Ausgang mit vermeintlichen)Process.Start() funktioniert nicht richtig

Problem ist folgendes: nach dem Ausführen pro1.exe Ausgabedatei leer ist. Wenn ich es manuell ausführe, schreibt es jedoch in die Ausgabedatei.

Hier ist der Code, wie ich pro1 ausführen:

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 ist eine vollständige Pfaddatei exe.

in debug ich sehe, dass der Prozess beginnt und ohne Fehler endet.

Antwort

9

Dies wird oft durch eine andere verursacht. Wahrscheinlich müssen Sie die Eigenschaft WorkingDirectory so einstellen, dass sie mit dem Pfad der ausführbaren Datei übereinstimmt.

Ohne UseShellExecute == false ist das Arbeitsverzeichnis möglicherweise nicht der lokale Pfad der Anwendung.

+1

Wow ... Vielen Dank, Einstellung 'WorkingDirectory' half – Vita1ij