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