2013-06-16 9 views
7

In Visual Studio 2010 (oder 2012) gibt es eine Möglichkeit, alle Verweise im Code zu finden, die eine Klasse/Methode in einer referenzierten DLL erwähnt.Finden Sie alle Referenzen einer DLL in einem Projekt

Zur Zeit habe ich zwei Prozesse, die ich (je nach Situation) verwenden:

  • Die erste beinhaltet die DLL-Verweis aus dem Projekt nur zu löschen und notieren Sie sich dann alle Build-Fehlerstellen zu machen.
  • Die andere Möglichkeit ist, die Referenz in der Object Browser zu öffnen und dann zu seinen Namespaces zu erweitern, und für jeden Namespace ich eine manuelle Suche, aber dies hilft nicht immer alle Referenzen zu finden und weil der Legacy-Code die gleichen Namespaces hat Bei mehreren Baugruppen ist viel Rauschen zu filtern.

Keine dieser beiden sind wirklich ideale Lösungen, gibt es eine einfachere Möglichkeit, dies zu tun? vielleicht über eine VS-Erweiterung.

Antwort

6

können Sie diese finden, wenn Sie ReSharper installieren:

die References erweitern und Find code Dependent on Module

enter image description here

Die Ergebnisse erscheinen dann wie wählen:

enter image description here

+0

ausgezeichnet! Danke für den Tipp. wusste nie, dass Resharper das tun könnte! –

2

Do not hast Resharper, aber du hast Sublime Text?

in Sublime Text, wählen Sie "Ordner öffnen" und wählen Sie den Ordner mit der Lösung. Wählen Sie dann den Menüpunkt finden ->in Dateien suchen ...

In der 'Wo:' Feld eingeben:

*.scsproj 

dann in der 'Suche:' Feld, suchen Sie nach der String

Include="[full namespaced name of library]" 

zum Beispiel:

Include="System.Xml.Linq" 

findet alle Projekte, die auf die System.Xml.Linq DLL in der Lösung verweisen.

+0

Ich suchte nicht nach Projekten, die auf die DLL verweisen, ich suchte nach den Klassen, die die in der DLL definierten Elemente verwenden. – Seph

0

Haben Sie keine Erweiterung?

Schreiben Sie einfach ein Stück Code ... am einfachsten ... Ich finde es sehr einfach, die Projektdatei zu bearbeiten, .. über Code,

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; 
    } 
Verwandte Themen