如何查找引用特定dll的所有程序集?

Mic*_*elS 3 c# dependencies assemblies ildasm

我有一个包含大量目录的目录dlls.我需要找到所有那些引用特定的东西dll.

我正在考虑以下解决方案:

  1. 循环程序集并使用它调用每个程序集 ildasm
  2. 转储manifest到文本文件中
  3. 在文本文件中搜索所需的程序集名称.

然而,这个解决方案让我觉得非常错误.有没有更好的方法来实现它?

Dir*_*irk 10

您可以为此目的编写一个小工具,使用Reflection查找引用的程序集:

string[] fileNames = ...; // get all the filenames
foreach (string fileName in fileNames) {
    var assembly = System.Reflection.Assembly.ReflectionOnlyLoadFrom(fileName);
    var referencedAssemblies = assembly.GetReferencedAssemblies();

    foreach (var assemblyName in referencedAssemblies) {
        // do your comparison
    }
}
Run Code Online (Sandbox Code Playgroud)