Найти все ссылки на DLL в проекте
В Visual Studio 2010 (или 2012) есть способ найти все ссылки в коде, которые упоминают любой класс / метод, определенный в указанной DLL.
В настоящее время у меня есть два процесса, которые я использую (в зависимости от ситуации):
- Первый включает в себя удаление ссылки dll из проекта, а затем запись всех ошибок сборки.
- Другой способ - открыть ссылку в
Object Browser
а затем расширить до его пространств имен, и для каждого пространства имен я выполняю ручной поиск, но это не всегда помогает найти все ссылки, и, поскольку унаследованный код имеет одинаковые пространства имен, охватывающие несколько сборок, существует много шума для фильтрации.
Ни одно из этих решений не является идеальным, есть ли способ сделать это проще? возможно через расширение VS.
4 ответа
Вы можете найти это, если вы установите Resharper:
Разверните References
и выбрать Find code Dependent on Module
Результаты тогда выглядят как:
У вас нет Resharper, но у вас есть Sublime Text?
в Sublime Text выберите "открыть папку" и выберите папку, содержащую решение. Затем выберите пункт меню Find -> Find in Files...
В поле "Где:" введите:
*.scsproj
Затем в поле "Найти:" найдите строку
Include="[full namespaced name of library]"
например:
Include="System.Xml.Linq"
найдет все проекты, которые ссылаются на dll System.Xml.Linq в решении.
Нет расширения?
Просто напишите кусок кода... проще всего... Мне очень легко редактировать с помощью кода файл проекта...
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;
}
Шаги для этого в Visual Studio 2019:
- Разверните проект в обозревателе решений.
- Разверните раздел «Ссылки».
- Щелкните правой кнопкой мыши ссылку, которая соответствует рассматриваемой DLL (должна иметь то же имя).
- Выберите Просмотр в обозревателе объектов.
- Разверните объект, соответствующий вашей dll.
- Расширьте пространство имен
- Щелкните класс правой кнопкой мыши и выберите «Найти все ссылки».