2011-09-30 2 views
8

प्रसंग
जब डिबगिंग एक दृश्य स्टूडियो समाधान, एक प्रक्रिया (डीबग मेनू F5 के साथ) MyApp.vshost.exe कहा जाता है। मैं बंद करो डीबग मेनू शिफ्ट + F5 का उपयोग कर मतलब है और Application.Exit() की तरह एक कोड लाइन के लिए इंतजार नहीं होता है - - इस प्रक्रिया को मार डाला नहीं है जब आप अशिष्टता से डिबग बंद करो।का समाधान "कमांड" taskkill/एफ/आईएम MyApp.vshost.exe "के साथ बाहर निकल गया कोड 128" त्रुटि

कभी-कभी, जब आप बाद में अपने एप्लिकेशन को डीबग करना शुरू करते हैं, तो एक त्रुटि संदेश होता है, यह कहकर कि फ़ाइल (जाहिर है, यह डीबग द्वारा उपयोग की जाने वाली फ़ाइल है: bin\Debug\MyApp.vshost.exe) पहले से ही उपयोग में है।

है यही कारण है कि मैं घटनाओं बिल्ड को यह कमांड लाइन कहा: taskkill /F /IM MyApp.vshost.exe

समस्या
जब MyApp.vshost.exe प्रक्रिया मौजूद नहीं है, दृश्य स्टूडियो कभी कभी का निर्माण समय में एक त्रुटि फेंक है, इस प्रकार का निर्माण करने को रोकने आवेदन:

Error c:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets 
The command "taskkill /F /IM MyApp.vshost.exe" exited with code 128. 

बिल्डिंग ईवेंट को निकालने का एकमात्र मौजूदा समाधान है।

प्रश्न
वहाँ निर्माण घटना को हटाए बिना त्रुटि संदेश को हल करने के लिए एक रास्ता है?

संपादित

मैं सबसे अच्छा समाधान में सोच रहा हूँ, आदेश की वापसी कोड (errorlevel) को पुनः प्राप्त करने तो लौट 0 अगर यह 128 के बराबर है होगा यह संभव घटनाओं बिल्ड में यह करने के लिए है परियोजना का?

+0

क्या आप विस्तार कर रहे हैं कि आप क्या कर रहे हैं? उदाहरण के लिए, क्या आप ऑफिस इंटरऑप बिट्स के माध्यम से एक्सेल या वर्ड जैसे प्रक्रिया ऐप्स से बाहर इंटरफेसिंग कर रहे हैं? – Kev

+0

@ केवी: मुझे अपने सभी अनुप्रयोगों में समस्या है - _विंडोज प्रोजेक्ट_ और _विंडोज़ सेवाएं_ और कुछ एक्सेल और न ही वर्ड के साथ काम नहीं कर रहे हैं। मेरे पास सबसे सरल ऐप एक ऐसी सेवा है जिसने एक एमएसएसएलएल डेटाबेस में टाइमर जांच की है और सरल कार्यों को निष्पादित किया है। – Otiel

+0

किसी भी समाधान, एमएसबिल्ड का उपयोग कर इसी तरह की समस्या: एमएसबीयूआईएलडी: चेतावनी एमएसबी 3073: कमांड "डीएल" सी: \ क्लाइंट \ *। * "/ Q/f/s" कोड 128 के साथ निकल गया। – Kiquenet

उत्तर

15
taskkill /F /IM MyApp.vshost.exe 2>&1 || exit /B 0 
+6

संपादित किया, यह मेरे लिए काम करता था, सिवाय इसके कि मुझे डबल पाइप हटा दिए जाने तक समस्याएं थीं, और इसे एक ही पाइप '|| '' ' –

+1

बनाया गया था, मैं सशर्त परीक्षण का उपयोग करने का सुझाव दूंगा:' टास्किल/एफ/फाई "पिड gt 0"/im MyApp.vshost.exe' [स्रोत] (http://stackoverflow.com/a/15748825/426315) – itsho

+0

वही है। वीएस 2015 में, एकल पाइप टास्ककिल/f/im excel.exe 2> & 1 | बाहर निकलें/बी 0 –

2

एक अस्थायी उपाय आप दृश्य स्टूडियो मेजबान प्रक्रिया निष्क्रिय कर सकते हैं के रूप में:

How to: Disable the Hosting Process

होस्टिंग प्रक्रिया

ओपन दृश्य स्टूडियो में एक परियोजना को अक्षम करने के।

प्रोजेक्ट मेनू पर, गुण क्लिक करें।

डीबग टैब पर क्लिक करें।

विजुअल स्टूडियो होस्टिंग प्रक्रिया सक्षम करें चेक बॉक्स को साफ़ करें।

यह कर या वांछनीय नहीं हो सकता के साइड इफेक्ट:

आम तौर पर जब होस्टिंग प्रक्रिया अक्षम किया गया है:

समय .नेट फ्रेमवर्क अनुप्रयोगों डिबगिंग शुरू करने के लिए आवश्यक

बढ़ती है।

डिज़ाइन-टाइम अभिव्यक्ति मूल्यांकन अनुपलब्ध है।

आंशिक ट्रस्ट डीबगिंग अनुपलब्ध है।

-1

शायद पूर्ण विशेषाधिकार वाले आईडीई के साथ व्यवस्थापक के रूप में चल रहा है? (मुझे पता है कि माइक्रोसॉफ्ट से एक बार यह सुझाव दिया गया था)

+0

नहीं, व्यवस्थापक के रूप में आईडीई नहीं चला रहा है। – Otiel

2

MyApp.vshost.exeVisual Studio hosting process है। इस प्रक्रिया का उद्देश्य डिबगिंग अनुभव को बेहतर बनाना है। यदि आप इस प्रक्रिया को मार देते हैं तो विजुअल स्टूडियो इसे फिर से बना देगा। आप इसे से छुटकारा पाने के लिए चाहते हैं, तो आप इस परियोजना के लिए डिबगिंग गुण में होस्टिंग प्रक्रिया बंद कर सकते हैं (सी # यहाँ दिखाया गया है):

Debug project properties

आपको त्रुटि आप के रूप में अनुभव का वर्णन "इस प्रक्रिया में पहले से ही है उपयोग"। मुझे नहीं लगता कि मैंने खुद को अनुभव किया है लेकिन एक काम पीसी पर मुझे डिबगिंग के बाद निर्माण में बड़ी परेशानी हो रही है। ऐसा लगता है कि MyApp.exe लॉक है और ओवरराइट नहीं किया जा सकता है ("फ़ाइल पहले से उपयोग में है", न कि "प्रक्रिया") जिससे निर्माण विफल हो जाता है। विश्वास से यह है कि एक वायरस स्कैनर (माइक्रोसॉफ्ट फोरफ्रंट) इन समस्याओं का कारण बन रहा है, लेकिन कॉर्पोरेट वातावरण में होने पर मैं अपनी परिकल्पना का परीक्षण करने के लिए स्कैनर को बंद नहीं कर सकता।

कई मामलों में होस्टिंग प्रक्रिया को अक्षम करने से आपके डिबगिंग अनुभव पर कोई उल्लेखनीय प्रभाव नहीं पड़ेगा।

+0

यह सही है, यह _ "फ़ाइल पहले से उपयोग में है" _ और _ "प्रक्रिया" _ नहीं है। मैंने अपना क्यू – Otiel