मेरा विजुअल स्टूडियो एक्सटेंशन IVsSolutionEvents.OnAfterOpenSolution()
के माध्यम से समाधान के उद्घाटन के लिए जवाब देता है।एक विजुअल स्टूडियो एक्सटेंशन में, "ओपन फ़ोल्डर" के साथ-साथ "ओपन सॉल्यूशन" का जवाब कैसे दें?
विजुअल स्टूडियो 2017 ने "ओपन सॉल्यूशन" के विकल्प के रूप में "Open Folder" पेश किया, लेकिन जब आप कोई फ़ोल्डर खोलते हैं, तो IVsSolutionEvents.OnAfterOpenSolution()
आग नहीं होता है। (IVsSolutionEvents
में अन्य कार्यक्रमों में से कोई भी नहीं, न ही IVsSolutionLoadEvents
में से कोई भी घटना।)
मेरा एक्सटेंशन कैसे पता चलेगा कि एक समाधान के विपरीत एक फ़ोल्डर खोला गया है?
क्या आप IVsSolutionEvents7 :: OnAfterOpenFolder की तलाश में हैं? https://docs.microsoft.com/en-us/dotnet/api/microsoft.visualstudio.shell.interop.ivssolutionevents7?view=visualstudiosdk-2017 –
@ सिमन मॉरीयर: यह सही दिखता है, लेकिन जब मैं इसे कार्यान्वित करता हूं और अपना कार्यान्वयन पास करता हूं 'IVsSolution.AdviseSolutionEvents()' के लिए ऑब्जेक्ट, 'IVsSolutionEvents7' घटनाओं में से कोई भी आग नहीं। ऑब्जेक्ट 'IVsSolutionEvents' को भी लागू करता है, और वे घटनाएं आग लगती हैं। कोई विचार...? – RichieHindle
नहीं, मुझे लगता है कि यह वास्तव में एकमात्र तरीका है। कुछ वीएस डीएल उस इंटरफेस को उसी तरह कार्यान्वित करते हैं (उदाहरण के लिए माइक्रोसॉफ्ट। विज़ुअल स्टूडियो .hell.UI.Internal, क्लास माइक्रोसॉफ्ट। विज़ुअल स्टूडियो.प्लाफ्टरयूआई। स्टार्टपेजटूलविंडोपेन)। आप ICustomQueryInterface को अस्थायी रूप से यह जांचने के लिए प्रयास कर सकते हैं कि यह उस इंटरफ़ेस का भी अनुरोध कर रहा है या नहीं। –