发现哪个程序集触发某些依赖项在运行时加载的最简单方法是什么?我有一个旧程序集的杂散引用,在100多个程序集之一中作为我们应用程序的一部分加载。
使用FUSLOGVW我可以看到旧的程序集正在加载 - 但是日志并没有告诉我哪个程序集导致它加载。我使用了CheckASM,它允许我浏览主程序集的依赖关系,并探索树 - 但这些都很好。
所以它必须是在运行时动态加载的程序集,或者某个地方的配置文件。但我找不到它的生命。
想知道是否有更聪明的方法可以做到这一点?
答案 0 :(得分:1)
如何删除(或重命名)程序集以查看在程序尝试加载它时是否抛出异常?堆栈跟踪应包含对调用程序集中方法的引用。
答案 1 :(得分:1)
也许您可以在所有应用域中订阅 AssemblyResolve 事件(如果没有太多)。 ResolveEventArgs包含特殊字段 - ResolveEventArgs.RequestingAssembly