Visual studio 查找项目中dll的所有引用
在VisualStudio2010(或2012)中,有一种方法可以定位代码中提到引用dll中定义的任何类/方法的所有引用 目前,我使用了两个流程(取决于具体情况):Visual studio 查找项目中dll的所有引用,visual-studio,dll-reference,Visual Studio,Dll Reference,在VisualStudio2010(或2012)中,有一种方法可以定位代码中提到引用dll中定义的任何类/方法的所有引用 目前,我使用了两个流程(取决于具体情况): 第一种方法是从项目中删除dll引用,然后记下所有生成错误的位置 另一种方法是在对象浏览器中打开引用,然后扩展到它的名称空间,对于每个名称空间,我都进行手动搜索,但这并不总是有助于找到所有引用,而且由于遗留代码具有跨多个程序集的相同名称空间,因此需要过滤大量噪音 这两个都不是真正理想的解决方案,有没有更简单的方法?可能通过VS扩展
- 第一种方法是从项目中删除dll引用,然后记下所有生成错误的位置
- 另一种方法是在
中打开引用,然后扩展到它的名称空间,对于每个名称空间,我都进行手动搜索,但这并不总是有助于找到所有引用,而且由于遗留代码具有跨多个程序集的相同名称空间,因此需要过滤大量噪音对象浏览器
这两个都不是真正理想的解决方案,有没有更简单的方法?可能通过VS扩展。如果安装Resharper,您可以找到: 展开
参考
并选择查找依赖于模块的代码
结果如下所示:
没有重竖琴,但你有崇高的文字 在升华文本中,选择“打开文件夹”,然后选择包含解决方案的文件夹。然后选择菜单项查找->在文件中查找… 在“位置:”字段中,输入:
*.scsproj
然后在“查找:”字段中搜索字符串
Include="[full namespaced name of library]"
例如:
Include="System.Xml.Linq"
将在解决方案中查找引用System.Xml.Linqdll的所有项目。是否没有任何扩展 只要写一段代码。。。最简单的。。。我发现通过代码编辑项目文件非常容易
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;
}
private static List findallreferences(ref int-ctr、string-dir、string-projectToSearch)
{
列表引用=新列表();
foreach(目录.GetFiles(dir,“*.csproj”,SearchOption.AllDirectories)中的var projFile)
{
if(projFile.IndexOf(projectToSearch,StringComparison.OrdinalIgnoreCase)>=0)
继续;
//var t=假;
var lines=File.ReadAllLines(projFile);
foreach(行中的var行)
{
if(line.IndexOf(projectToSearch,StringComparison.OrdinalIgnoreCase)>=0)
{
ctr++;
参考添加(projFile);
打破
}
}
}
返回参考文献;
}
太棒了!谢谢你的提示。从来都不知道Resharper能做到这一点!我不是在寻找引用dll的项目,而是在寻找哪些类使用dll中定义的成员。这太棒了!我几年前就可以用这个了。尽管我使用了类似于Include=“.*Dll\.Name
(注意
上的转义)的正则表达式模式