Search code examples
c#dependenciesassembliesildasm

How to find all assemblies that reference a specific dll?


I've a directory with a large number of dlls. I need to find all those that reference a specific dll.

I'm thinking about the following solution :

  1. Loop the assemblies and invoke each one with ildasm
  2. Dump the manifest into a text file
  3. Search the text files for the required assembly name.

Yet this solution feels immensely wrong to me. Is there a better way to achieve it?


Solution

  • You could write a small tool for that purpose, using Reflection to find the referenced assemblies:

    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
        }
    }