2013-08-01 17 views
6

Mam program pro1.exe, który odczytuje z pliku wejściowego, oblicza wynik i zapisuje go do pliku wyjściowego. Teraz jestem programu test.exe, że testuje go na różnych testów piśmie (wypełnić wejściowy, uruchom Pro1 użyciu Process.Start() i porównuje wyjście z rzekomej)Process.Start() nie działa poprawnie

Problem jest następujący: po wykonaniu pro1.exe plik wyjściowy jest pusty. Jednak jeśli uruchomię go ręcznie, zapisuje do pliku wyjściowego.

Oto kod jak ja wykonać 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 jest pełna ścieżka do pliku exe.

w debugowaniu Widzę, że proces się rozpoczyna i kończy bez błędów.

Odpowiedz

9

Jest to często spowodowane odmiennym WorkingDirectory. Najprawdopodobniej musisz ustawić właściwość WorkingDirectory, aby dopasować ścieżkę do pliku wykonywalnego.

Bez tego, gdy UseShellExecute == false, katalog roboczy może nie być lokalną ścieżką aplikacji.

+1

Wow ... Wielkie dzięki, ustawienie "WorkingDirectory" pomogło – Vita1ij