如何从.net C#exe或dll获取引用列表和导入的模块?

时间:2013-04-25 04:52:58

标签: c# .net module .net-assembly

给定任何C#exe或dll,我想获得它引用的所有程序集的列表以及所有导入的模块。这样做最简单的方法是什么?

3 个答案:

答案 0 :(得分:1)

其他人已经给出了以编程方式执行此操作的答案。如果您只想查看列表,可以使用来自Telerik的JustDecompile反编译器。用它打开.dll,你就可以在左侧导航参考列表等。

答案 1 :(得分:0)

您可以使用反射来了解如何获取参考装配。请参阅下面的链接。我不确定您对导入模块的问题,请提供更多详细信息。

http://msdn.microsoft.com/en-us/library/system.reflection.assembly.getreferencedassemblies.aspx

http://msdn.microsoft.com/en-us/library/system.reflection.assembly.getreferencedassemblies%28v=vs.100%29.aspx

希望得到这个帮助。

答案 2 :(得分: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参数表示要为其查找所有依赖项的程序集。