2011-01-31 71 views
1

什么是最简单的方法来发现哪个程序集正在触发某些依赖性,以便在运行时加载?我在某个地方有一个零散的对旧程序集的引用,在我们的应用程序的一部分被加载的100多个程序集之一中。发现哪些程序集正在加载哪些依赖关系(运行时)

使用FUSLOGVW我可以看到正在加载的旧程序集 - 但日志不告诉我哪个程序集导致它加载。我使用CheckASM,它允许我浏览主要程序集的依赖关系,并向下浏览树 - 但这些都很好。

所以它必须是一个在运行时动态加载的程序集或某个配置文件。但我无法为我的生活找到它。

想知道是否有更聪明的方法来做到这一点?

回答

1

也许你可以订阅AssemblyResolve事件在所有的应用程序域(如果没有太多)。 ResolveEventArgs包含此特殊字段 - ResolveEventArgs.RequestingAssembly

+0

是的,只需删除DLL即可触发事件。看看调用堆栈,看看它是如何调用的。 – 2011-01-31 20:32:47

1

如何删除(或重命名)程序集以查看在程序尝试加载它时是否引发异常?堆栈跟踪应包含对调用程序集中方法的引用。

+0

谢谢马克,这是战斗的一半! – 2011-02-01 10:33:01

相关问题