[英]How to find all assemblies that reference a specific dll?
我有一个包含大量dlls
的目录。 我需要找到所有引用特定dll
。
我正在考虑以下解决方案:
ildasm
调用每个程序集 manifest
转储到文本文件中 然而,这个解决方案让我觉得非常错误。 有没有更好的方法来实现它?
您可以为此目的编写一个小工具,使用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
}
}
根据Microsoft documentationnn AppDomain.CurrentDomain.GetAssemblies()获取已加载到此应用程序域的执行上下文中的程序集。 关于AppDomain.CurrentDomain.GetAssemblies()
您似乎需要更改从使用appdomain加载所需组件的策略,以便在应用程序文件夹中查找dll。
我在这里找到了类似问题的讨论
下载AsmSpy.exe,它可以选择列出程序集中的所有程序集和所有引用。
下载IlSpy.exe,打开要查看其参考的程序集,它将列出所有引用的程序集。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.