给定任何 C# exe 或 dll,我想获取它引用的所有程序集以及所有导入模块的列表。这样做最简单的方法是什么?
问问题
105 次
3 回答
1
其他人已经给出了以编程方式执行此操作的答案。但是,如果您只想查看列表,则可以使用 Telerik 的JustDecompile 之类的反编译器。用它打开 .dll,您将能够在左侧导航参考列表等。
于 2013-04-25T07:50:05.970 回答
0
您可以使用反射来了解如何获取参考程序集。请参阅下面的链接。我不确定您关于导入模块的问题,请提供更多详细信息。
http://msdn.microsoft.com/en-us/library/system.reflection.assembly.getreferencedassemblies.aspx
或者
希望这有帮助。
于 2013-04-25T04:56:54.483 回答
0
使用GetDependentAssemblies
如下:
private IEnumerable<Assembly> GetDependentAssemblies(Assembly analyzedAssembly)
{
return AppDomain.CurrentDomain.GetAssemblies()
.Where(a => GetNamesOfAssembliesReferencedBy(a)
.Contains(analyzedAssembly.FullName));
}
public IEnumerable<string> GetNamesOfAssembliesReferencedBy(Assembly assembly)
{
return assembly.GetReferencedAssemblies()
.Select(assemblyName => assemblyName.FullName);
}
该analyzedAssembly
参数表示您要为其查找所有依赖项的程序集。
于 2013-04-25T04:58:51.910 回答