在给定包含.Net程序集的文件夹的情况下,如何快速查找其中哪个依赖于给定的程序集?

(我想的不是用Reflector逐一打开它们)

最佳答案

您可以使用 GetReferencedAssemblies() 汇编方法在代码中执行此操作:

public void GetDependentAssemblies(Assembly assembly)
{
    var assembliesPaths = new[] {
                                  @"c:\dlls\assembly1.dll",
                                  @"c:\dlls\assembly2.dll"
                                };

    IEnumerable<Assembly> dependantAssemblies = assembliesPaths
        .Select(path => Assembly.ReflectionOnlyLoadFrom(path))
        .Where(folderAssembly =>
                   {
                       var fullNames =  folderAssembly.GetReferencedAssemblies()
                                                  .Select(name => name.FullName);
                       return fullNames.Contains(assembly.GetName().FullName);
                   });
}

关于.net - 查找一组装配中的哪一个取决于装配X,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2612860/

10-09 12:37