depends.exe工具可以遍历可执行文件所依赖的所有动态链接库,但是如果动态链接库是由Assembly类在运行时动态加载的,我如何才能看到已经加载的DLL (程序集)?
发布于 2009-12-11 13:19:26
作为快照:
AppDomain.CurrentDomain.GetAssemblies()当它们发生的时候:
AppDomain.CurrentDomain.AssemblyLoad类似于:
static void Main()
{
AppDomain.CurrentDomain.AssemblyLoad += AssemblyLoad;
LogCurrent("before");
AnotherMethod();
LogCurrent("after");
}
static void AnotherMethod()
{
// to force stuff to happen
new System.Data.SqlClient.SqlCommand().Dispose();
}
static void LogCurrent(string caption)
{
foreach (Assembly asm in AppDomain.CurrentDomain.GetAssemblies())
{
Console.WriteLine(caption + ": " + asm.FullName);
}
}
static void AssemblyLoad(object sender, AssemblyLoadEventArgs args)
{
Console.WriteLine("Loaded: " + args.LoadedAssembly.FullName);
}发布于 2009-12-11 13:19:43
假设你不是在和AppDomains打交道:
AppDomain.CurrentDomain.GetAssemblies();发布于 2009-12-11 14:11:18
你说你正在寻找外部工具?尝试使用带SOS调试扩展的WinDbg;http://msdn.microsoft.com/en-us/library/bb190764.aspx。
还有其他更容易使用的工具,可以提供相同级别的细节。我想JetBrains的人也有一个( Resharper )
https://stackoverflow.com/questions/1885915
复制相似问题