找出应用程序引用的DLL?

时间:2015-02-18 14:12:42

标签: c# reflection

我正在接管由第三方软件公司制作的应用程序。有一个可执行文件当前无法正常工作,因为它缺少引用的DLL。如何确定应用程序引用的DLL?

2 个答案:

答案 0 :(得分:1)

查看Assembly.GetReferencedAssemblies Method

例如:

var targetAsm = Assembly.Load(File.ReadAllBytes("[TargetPath]"));
foreach(var an in targetAsm.GetReferencedAssemblies())
{
    Console.WriteLine(an.ToString());   
}

答案 1 :(得分:0)

对于托管程序集,您可以将您拥有的应用程序和程序集加载到dotPeek from JetBrains等反编译器中。您也可以使用.NET SDK提供的ildasm.exe。这将为您提供托管引用列表。

对于非托管DLL,您需要通过在代码中查找[DllImport]属性来搜索代码以进行P / Invoke调用。这些应该包含您要查找的导入DLL的名称。

一旦有了一组本机DLL,使用Dependency Walker之类的东西就可以获得你需要的其余非托管DLL。