0

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

4

3 回答 3

1

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

于 2013-04-25T07:50:05.970 回答
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

希望这有帮助。

于 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 回答