2013-06-16 9 views
7

में एक डीएल के सभी संदर्भ खोजें विजुअल स्टूडियो 2010 (या 2012) में संदर्भ में सभी संदर्भों का पता लगाने का कोई तरीका है जो किसी संदर्भित डीएल में परिभाषित किसी वर्ग/विधि का उल्लेख करते हैं।प्रोजेक्ट

वर्तमान में मैं दो प्रक्रियाओं है कि मैं का उपयोग करें (स्थिति के आधार पर) है:

  • पहले एक बस परियोजना से dll संदर्भ को हटाने और फिर सभी निर्माण त्रुटि स्थानों में से एक नोट करना होता है।
  • दूसरा तरीका Object Browser में संदर्भ खोलना है और उसके बाद इसके नामस्थानों में विस्तार करना है, और प्रत्येक नेमस्पेस के लिए मैं मैन्युअल खोज करता हूं, लेकिन यह हमेशा सभी संदर्भों को खोजने में मदद नहीं करता है और क्योंकि विरासत कोड के समान नामस्थान हैं कई असेंबली फैलाने के माध्यम से फ़िल्टर करने के लिए बहुत शोर है।

इनमें से कोई भी वास्तव में आदर्श समाधान नहीं है, क्या ऐसा करने का कोई आसान तरीका है? शायद एक वीएस एक्सटेंशन के माध्यम से।

References का विस्तार करें और चुनें Find code Dependent on Module

enter image description here

परिणाम तो तरह दिखाई:

enter image description here

उत्तर

6

यदि आप स्थापित Resharper इस पा सकते हैं Resharper है, लेकिन आपके पास शानदार पाठ है?

सब्लिमे टेक्स्ट में, 'खुला फ़ोल्डर' का चयन करें, और समाधान वाले फ़ोल्डर का चयन करें। तब का चयन करें मेनू आइटम खोजें ->फ़ाइलें में खोजें ...

में 'कहां:' फ़ील्ड में दर्ज करें:

*.scsproj 
फिर 'खोजें:' में

फ़ील्ड, खोजे स्ट्रिंग

Include="[full namespaced name of library]" 
उदाहरण के लिए

:

Include="System.Xml.Linq" 

समाधान में System.Xml.Linq डीएलएल का संदर्भ देने वाली सभी परियोजनाओं को मिलेगा।

+0

उत्कृष्ट! पारितोषिक के लिए धन्यवाद। कभी नहीं पता था कि रिशेर्पर ऐसा कर सकता है! –

2

नहीं

+0

मैं उन परियोजनाओं की तलाश नहीं कर रहा था जो डीएलएल का संदर्भ देते हैं, मैं देख रहा था कि कौन से वर्ग डीएल में परिभाषित सदस्यों का उपयोग करते हैं। – Seph

0

कोई एक्सटेंशन नहीं है?

बस, कोड ... सबसे आसान ... मैं इसे बहुत संपादित करने के लिए आसान लगता है के एक टुकड़े के बारे में कोड, परियोजना फ़ाइल के माध्यम से ..

private static List<string> FindAllRefrences(ref int ctr, string dir, string projectToSearch) 
    { 
     List<string> refs = new List<string>(); 
     foreach (var projFile in Directory.GetFiles(dir, "*.csproj", SearchOption.AllDirectories)) 
     { 
      if (projFile.IndexOf(projectToSearch, StringComparison.OrdinalIgnoreCase) >= 0) 
       continue; 
      //var t = false; 
      var lines = File.ReadAllLines(projFile); 

      foreach (var line in lines) 
      { 
       if (line.IndexOf(projectToSearch, StringComparison.OrdinalIgnoreCase) >= 0) 
       { 
        ctr++; 
        refs.Add(projFile); 
        break; 
       } 
      } 
     } 

     return refs; 
    }