2013-06-16 3 views
7

В Visual Studio 2010 (или 2012) есть способ найти все ссылки в коде, в которых указывается любой класс/метод, определенный в ссылочной dll.Найти все ссылки на dll в проекте

В настоящее время у меня есть два процесса, которые я использую (в зависимости от ситуации):

  • Первым включает в себя только удалить ссылку DLL из проекта, а затем делая запись всех мест ошибки сборки.
  • Другим способом является открытие ссылки в Object Browser, а затем расширение на его пространства имен, и для каждого пространства имен я выполняю ручной поиск, но это не всегда помогает найти все ссылки и потому, что унаследованный код имеет одинаковые пространства имен охватывая несколько сборок, есть много шума для фильтрации.

Ни один из них не является действительно идеальным решением, есть ли более простой способ сделать это? возможно через расширение VS.

ответ

6

Вы можете найти это, если вы установите Resharper:

Разверните References и выберите Find code Dependent on Module

enter image description here

Результаты затем появляются как:

enter image description here

+0

отлично! Спасибо за совет. никогда не знал, что Решарпер может это сделать! –

2

Не есть Resharper, но у вас есть Sublime Text?

В документе Sublime, выберите «открыть папку» и выберите папку, содержащую решение. Затем выберите пункт меню Найти ->Найти в файлах ...

В 'Где:' поле, введите:

*.scsproj 

Тогда в 'Найти:' поле поиска для строка

Include="[full namespaced name of library]" 

, например:

Include="System.Xml.Linq" 

найдет все проекты, которые ссылаются на dll System.Xml.Linq.

+0

Я не искал проекты, ссылающиеся на dll, я искал, какие классы используют члены, определенные в dll. – 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; 
    } 

 Смежные вопросы

  • Нет связанных вопросов^_^