2013-06-16 20 views
7

Visual Studio 2010'da (veya 2012) başvurulan dll'de tanımlanan herhangi bir sınıf/yöntemden söz eden koddaki tüm başvuruları bulmanın bir yolu var.Bir projedeki dll tüm referanslarını bul

Şu anda ben (duruma göre) kullanan iki süreci vardır:

  • İlki sadece projeden dll referansı silme ve sonra tüm yapı hatası yerleri not yapmayı da içerir.
  • Diğer yolu, referansı Object Browser'da açmak ve daha sonra, ad alanlarına genişletmek ve her ad alanı için manuel arama yapmaktır, ancak bu her zaman tüm başvuruları bulmaya yardımcı olmaz ve eski kod aynı ad alanlarına sahip olduğundan Birden çok montajı kapsayan filtrelemek için çok fazla gürültü var.

Bunların hiçbiri gerçekten ideal çözümler değil, bunu yapmanın daha kolay bir yolu var mı? belki bir VS uzantısı ile. Sonra gibi görünen

References Expand ve Find code Dependent on Module

enter image description here

sonuçları seç::

enter image description here

cevap

6

Bunu bulabilirsiniz Resharper var, ama sizden üstün metin var mı? Sublime Metninde 'klasörü aç'ı seçin ve çözümü içeren klasörü seçin. Sonra menü noktasını seçin bul - In

... Dosyalar Bul>'Nerede:' alanına girin: 'Bul:' alanına Sonra

*.scsproj 

alanında, aramak dize

örneğin
Include="[full namespaced name of library]" 

:

Include="System.Xml.Linq" 

, çözümdeki tüm başvuruları System.Xml.Linq dll'de bulacaktır.

+0

mükemmel .. kod, proje dosyası üzerinden kod ... en kolay ... Ben düzenlemek çok kolay bulmak bir parça yazın! Bahşiş için teşekkürler. Resharper'ın bunu yapabileceğini hiç bilmiyordum! –

2

Sakın Resharper yüklerseniz

+0

dll'ye referans veren projeler aramıyordum, hangi sınıfların dll'de tanımlanan üyeleri kullandığını arıyordum. – Seph

0

Herhangi bir eklentiiniz yok mu?

Sadece

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; 
    } 
İlgili konular