2008-11-20 11 views
5

बस SDK के साथ गति प्राप्त करने की कोशिश ...दृश्य स्टूडियो तानाना, कैसे आप एक समाधान में परियोजनाओं की गणना करते हैं?

तो, मैं अपने खुद के उपकरण खिड़की ....

बना लिया है अब मैं वर्तमान में लोड में मौजूदा परियोजनाओं के माध्यम से पुनरावृति करना चाहते हैं समाधान और उपकरण विंडो में उनके नाम प्रदर्शित ....

लेकिन काफी यकीन है कि क्या सबसे अच्छा तरीका है परियोजनाओं की गणना करने में नहीं? किसी भी सुराग?

उत्तर

9

चेक इस code by Microsoft:

static public IEnumerable<IVsProject> LoadedProjects 
    { 
     get 
     { 
      var solution = _serviceProvider.GetService(typeof(SVsSolution)) as IVsSolution; 
      if (solution == null) 
      { 
       Debug.Fail("Failed to get SVsSolution service."); 
       yield break; 
      } 

      IEnumHierarchies enumerator = null; 
      Guid guid = Guid.Empty; 
      solution.GetProjectEnum((uint)__VSENUMPROJFLAGS.EPF_LOADEDINSOLUTION, ref guid, out enumerator); 
      IVsHierarchy[] hierarchy = new IVsHierarchy[1] { null }; 
      uint fetched = 0; 
      for (enumerator.Reset(); enumerator.Next(1, hierarchy, out fetched) == VSConstants.S_OK && fetched == 1; /*nothing*/) 
      { 
       yield return (IVsProject)hierarchy[0]; 
      } 
     } 
    } 
+0

बस एक प्रदान की माइक्रोसॉफ्ट कोड लिंक है, जो अब टूट गया है – superjos

+0

Github कड़ी में बदला गया के बारे में टिप्पणी। –

+0

महान है, धन्यवाद – superjos

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