2013-08-01 31 views
6

मेरे पास प्रोग्राम pro1.exe है जो इनपुट फ़ाइल से पढ़ता है, परिणाम की गणना करता है और इसे आउटपुट फ़ाइल में लिखता है। (Process.Start() का उपयोग कर भरने के इनपुट, चलाने pro1 और माना के साथ उत्पादन तुलना) अब मैं इस कार्यक्रम test.exe, कि यह विभिन्न परीक्षणों पर परीक्षण लिख रहा हूँप्रक्रिया। स्टार्ट() ठीक से काम नहीं करता

समस्या पीछा कर रहा है: pro1.exe आउटपुट फ़ाइल को क्रियान्वित करने के बाद खाली है। हालांकि, अगर मैं इसे मैन्युअल रूप से चलाता हूं, तो यह आउटपुट फ़ाइल को लिखता है।

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 फ़ाइल exe करने के लिए एक पूर्ण पथ है:

यहाँ कैसे मैं pro1 निष्पादित कोड है।

डीबग में मैं देखता हूं, वह प्रक्रिया शुरू हो रही है, और त्रुटियों के बिना समाप्त हो रही है।

उत्तर

9

अक्सर यह अलग WorkingDirectory होने के कारण होता है। निष्पादन योग्य पथ से मेल खाने के लिए आपको WorkingDirectory संपत्ति सेट करने की आवश्यकता है।

इसके बिना, जब UseShellExecute == false, कार्य निर्देशिका अनुप्रयोग का स्थानीय पथ नहीं हो सकता है।

+1

वाह ... बढ़िया धन्यवाद, 'वर्किंग डायरेक्टरी' सेटिंग में मदद मिली – Vita1ij

संबंधित मुद्दे