Vshost.exe फ़ाइल का उद्देश्य क्या है?


483

जब मैं "हैलो, वर्ल्ड!" बनाता हूं और संकलित करता हूं। सी # में आवेदन, मुझे डिबग फ़ोल्डर में मुख्य एक्सई के अलावा तीन फाइलें मिलती हैं (उदाहरण के लिए HelloWorld.exe)

  1. HelloWorld.vshost.exe
  2. HelloWorld.pdb
  3. HelloWorld.vshost.exe.manifest

ये फाइलें किस उद्देश्य की पूर्ति करती हैं?

जवाबों:


416

Vshost.exe सुविधा को विज़ुअल स्टूडियो 2005 (आपकी टिप्पणी का जवाब देने के लिए) के साथ पेश किया गया था।

इसका उद्देश्य ज्यादातर डिबगिंग लॉन्च को तेज करना है - मूल रूप से पहले से ही चल रही रूपरेखा के साथ एक प्रक्रिया है, बस जैसे ही आप इसे चाहते हैं अपने आवेदन को लोड करने के लिए तैयार हैं।

देखें इस MSDN लेख और इस ब्लॉग पोस्ट में अधिक जानकारी के लिए।


29
तो यही कारण है कि जब मैं कंसोल से चलता हूं। डीट्यूगर से Console.Write (System.AppDomain.CurrentDomain.FriendlyName) चलाते हैं, तो मुझे app.vshost.exe मिलता है और जब मैं सीधे रन से बाहर निकलता हूं तो मुझे ऐप.exe के रूप में आउटपुट मिलता है
मिलन

@Milen, msdn.microsoft.com/en-us/library/ms242202.aspx ने AppDomain.CurrentDomain.FriendlyName के विभिन्न परिणामों का उल्लेख मेजबान प्रक्रिया के साथ और उसके बिना किया।
थॉमसन

2
यदि डिबगिंग और .pdb फ़ाइलें डीबगिंग उद्देश्यों के लिए मौजूद हैं, तो जब मैं रिलीज़ में संकलित करता हूं तो उन्हें अभी भी क्यों शामिल किया जाता है?
इलिकेटोकोड

1
मुझे लगता है कि उन्होंने इसे विजुअल स्टूडियो 2017 में हटा दिया
फेलिप फुजिया पेसोटो

175
  • .exe - 'सामान्य' निष्पादन योग्य

  • .vshost.exe - डिबगिंग की सहायता के लिए निष्पादन योग्य का एक विशेष संस्करण; देखना MSDN जानकारी के लिए

  • .pdb - डिबग प्रतीकों के साथ प्रोग्राम डेटा बेस

  • .vshost.exe.manifest - एक प्रकार की कॉन्फ़िगरेशन फ़ाइल, जिसमें पुस्तकालयों पर अधिकतर निर्भरता होती है


62

Vshost.exe फ़ाइल Visual Studio (Visual Studio होस्ट निष्पादन योग्य) द्वारा निष्पादित निष्पादन योग्य है। यह निष्पादन योग्य है जो विज़ुअल स्टूडियो से लिंक करता है और डीबगिंग में सुधार करता है।

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


मुझे याद है कि वीएस 200 में ऐसा निष्पादन योग्य नहीं था (फिर भी हमारे पास ब्रेकपॉइंट थे)। क्या आप इसे विस्तार में बताने में सक्षम हैं?
मेहरदाद अफश्री

1
इसके अलावा, प्रकट रूप मेटाडेटा अनुप्रयोग के बारे में है जो आमतौर पर निष्पादन योग्य में भी जुड़ जाता है। .Pdb फ़ाइल एक पोर्टेबल डीबग डेटाबेस है और इसमें संकलित निष्पादन योग्य के बारे में डीबग जानकारी होती है, जैसे निष्पादन योग्य में कौन सा बिंदु कोड में किस लाइन से मेल खाता है।
जॉय

3
VS होस्ट प्रक्रिया का उपयोग केवल डीबगिंग को बेहतर बनाने के लिए किया जाता है - लेकिन यह डीबगिंग को सक्षम नहीं करता है।
डेनियल ब्रुकनर

23

जोड़ने पर, आप अपने रिलीज़ बिल्ड कॉन्फ़िगरेशन के लिए vshost फ़ाइलों के निर्माण को बंद कर सकते हैं और इसे डीबग के लिए सक्षम किया है ।

कदम

  • प्रोजेक्ट गुण > डीबग > कॉन्फ़िगरेशन (रिलीज़)> दृश्य स्टूडियो होस्टिंग प्रक्रिया को अक्षम करें
  • प्रोजेक्ट गुण > डीबग > कॉन्फ़िगरेशन (डीबग)> विज़ुअल स्टूडियो होस्टिंग प्रक्रिया को सक्षम करें

VS2010 से स्क्रीनशॉट

संदर्भ

  1. MSDN कैसे: होस्टिंग प्रक्रिया को अक्षम करें
  2. MSDN होस्टिंग प्रक्रिया (vshost.exe)

MSDN से उद्धरण कैसे करें: होस्टिंग प्रक्रिया को अक्षम करें

होस्टिंग प्रक्रिया के सक्षम होने पर कुछ API को कॉल प्रभावित हो सकते हैं। इन मामलों में, सही परिणाम वापस करने के लिए होस्टिंग प्रक्रिया को अक्षम करना आवश्यक है।

होस्टिंग प्रक्रिया को निष्क्रिय करने के लिए

  1. Visual Studio में एक निष्पादन योग्य प्रोजेक्ट खोलें। ऐसी परियोजनाएँ जो निष्पादनयोग्य का उत्पादन नहीं करती हैं (उदाहरण के लिए, वर्ग पुस्तकालय या सेवा परियोजनाएँ) इसका विकल्प नहीं है।
  2. पर परियोजना मेनू, क्लिक करें गुण
  3. डीबग टैब पर क्लिक करें
  4. Visual Studio होस्टिंग प्रक्रिया सक्षम करें चेक बॉक्स को साफ़ करें

जब होस्टिंग प्रक्रिया अक्षम होती है, तो कई डीबगिंग सुविधाएँ अनुपलब्ध होती हैं या प्रदर्शन में कमी आई है। अधिक जानकारी के लिए, डीबगिंग और होस्टिंग प्रक्रिया देखें

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

  • .NET फ्रेमवर्क अनुप्रयोगों को डीबग करना प्रारंभ करने के लिए आवश्यक समय बढ़ जाता है।
  • डिज़ाइन-टाइम अभिव्यक्ति मूल्यांकन अनुपलब्ध है।
  • आंशिक विश्वास डिबगिंग अनुपलब्ध है।

10

मुझे यकीन नहीं है, लेकिन मेरा मानना ​​है कि यह डिबगिंग ऑप्टिमाइज़ेशन है। हालांकि, मैं आमतौर पर इसे बंद कर देता हूं (परियोजना के लिए डिबग गुण देखें) और मुझे किसी मंदी की सूचना नहीं है और जब डिबगिंग की बात आती है तो मुझे कोई सीमा नहीं दिखती है।


"गार्ड" क्या है? एक उत्तर के साथ एक उपयोगकर्ता का संदर्भ? कुछ और? क्या आप अपना उत्तर अपडेट कर सकते हैं (उदाहरण के लिए एक सीधा लिंक, जैसे कि उपयोगकर्ता के नाम किसी भी समय बदल सकते हैं)?
पीटर मोर्टेंसन

मुझे लगता है कि यह एक और जवाब के लिए एक संदर्भ था, लेकिन यह 09 में था इसलिए मुझे माफ कर दो अगर मुझे विवरण याद नहीं है।
ब्रायन रासमुसेन

2

यह डिबगिंग (लोड समय को कम करने के लिए?) के लिए एक लंबी चलने वाली रूपरेखा प्रक्रिया प्रतीत होती है। मुझे पता चला कि जब आप डिबगर से दो बार अपना आवेदन शुरू करते हैं तो अक्सर एक ही vshost.exe प्रक्रिया का उपयोग किया जाएगा। यह केवल पहले सभी उपयोगकर्ता-लोड किए गए DLL को अनलोड करता है। यह अजीब चीजें करता है अगर आप प्रबंधित प्रक्रियाओं से एपीआई हुक के साथ बेवकूफ बना रहे हैं।


1
निरंतर प्रक्रिया भी अपवाद (एक्सेस उल्लंघन) का कारण बनती है जब मेरी परियोजना में P / Invoke करने के लिए कुछ कोड होता है। होस्ट प्रक्रिया को अक्षम करने के बाद समस्या गायब हो गई।
थॉमसन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.