我使用Antlr工具如下(在Mono上)
dmcs /r:Antlr3.Runtime.dll /r:StringTemplate.dll *.cs /out:Main.exe
我引用了两个dll,但是在场景后面引用了另一个dll文件(antlr.runtime.dll)。当我有一个错误就是复制两个dll并编译时,我得到了这个。
是否有任何.NET工具可以检测到哪些dll被引用?例如,如果我运行'DETECT Antlr3.Runtime.dll',我会得到'antlr.runtime.dll'。
答案 0 :(得分:3)
给NDepend一个去。它有一个依赖图/依赖矩阵功能,可以让你探索DLL之间的依赖关系。
答案 1 :(得分:2)
您可以使用Reflector或使用Mono.Cecil撰写一个(NDepend使用此内容)
在新项目中,参考Mono.Cecil
using System;
using Mono.Cecil;
namespace ReferenceDetector
{
class Program
{
static void Main(string[] args)
{
var assemblyPath = args[0];
var assemblyDefinition = AssemblyFactory.GetAssembly(assemblyPath);
Console.WriteLine(assemblyDefinition.Name.FullName);
foreach (AssemblyNameReference reference in assemblyDefinition.MainModule.AssemblyReferences)
{
Console.WriteLine("\t" + reference.FullName);
}
}
}
}
答案 2 :(得分:1)
您可以使用Reflector。 (递归展开“引用”节点)