我有一个包含大量dlls
的目录。我需要找到所有引用特定dll
的内容。
我正在考虑以下解决方案:
ildasm
manifest
转储到文本文件然而,这种解决方案对我来说感觉极其错误。有没有更好的方法来实现它?
答案 0 :(得分: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
}
}
答案 1 :(得分:0)
根据Microsoft documentationnn AppDomain.CurrentDomain.GetAssemblies()获取已加载到此应用程序域的执行上下文中的程序集。 About AppDomain.CurrentDomain.GetAssemblies()
您似乎需要更改从使用appdomain加载所需组件的策略,以便在应用程序文件夹中查找dll。
我找到了关于类似问题here
的讨论答案 2 :(得分:0)
下载AsmSpy.exe,它可以选择列出程序集中的所有程序集和所有引用。
答案 3 :(得分:0)
下载IlSpy.exe,然后打开要查看其引用的程序集,它将列出所有引用的程序集。