2011-09-26 13 views
5

मैंने एक नया वीएस 2010 एक्स्टेंसिबिलिटी पैकेज बनाया है। अब तक, मैं बस इतना करना चाहता हूं कि उपयोगकर्ता बटन दबाए और समाधान की पूरी सामग्री के साथ एक सूचीदृश्य भरें।विजुअल स्टूडियो एक्सटेंसिबिलिटी पैकेज सही प्रोजेक्ट को नहीं देख रहा है

EnvDTE80.DTE2 dte = (EnvDTE80.DTE2)System.Runtime.InteropServices.Marshal. 
    GetActiveObject("VisualStudio.DTE.10.0"); 

foreach (Project project in dte.Solution.Projects) 
{ 
    foreach(ProjectItem pi in project.ProjectItems) 
    { 
     listView1.Items.Add(pi.Name.ToString()); 
    } 
} 

यह प्रतीत होता है काम करने के लिए, तथापि, यह जब इस चलाया जाता है शुरू की है कि और नहीं प्रयोगात्मक उदाहरण उस में पैकेज साथ समाधान की सामग्री के साथ सूची को भरता है: मैं निम्नलिखित कोड है । क्या मैं गलत तरीके से संदर्भ को ठीक कर रहा हूं?

उत्तर

1

GetActiveObject विधि डीटीई की पहली प्रक्रिया आवृत्ति देता है, कॉलर डीटीई नहीं। (विजुअल स्टूडियो SDK में विजुअल स्टूडियो 2010 पर 2010 परियोजना, प्रयोगात्मक छत्ता execure को प्रकार F5 विफल हो सकता है)

here और अधिक जानकारी के लिए here देखो ...

0

नहीं - आप सभी यह देख ProjectItem.SubProject उपयोग करने के लिए आप क्या चाहते हैं ... समाधान संरचना कुछ प्रत्यावर्तन की जरूरत हो सकता है पर निर्भर करता है को पाने के लिए ... कुछ नमूना अच्छी तरह से कर रही है कोड के लिए की जरूरत है http://www.wwwlicious.com/2011/03/envdte-getting-all-projects.html