Assembly Binding Log Viewer 有相当多的错误(例如,它通常不会清空日志)并且功能很短(搜索、排序、过滤几乎都可用)。
所以我想知道是否
- 现有的替代方案存在
- 以某种方式在全球范围内挂钩 assemblyresolve 事件是可能的,所以我可以自己做
- 微软已经在某处发布了源代码,我们可以分叉它
如果没有第二个选项,我知道您可以相对简单地创建一个 CLR Host 实现(尽管这并不简单),但如果您需要的只是比现有 Fusion 日志查看器更细粒度的控制,这似乎有点过头了。
请注意,我已经看到了这个答案,但这似乎没有回答这个问题。
回答一些评论:
我知道程序集重定向、事件AssemblyResolve
和AssemblyLoad
事件,但第一个只能用作最后的手段(探测链中的最后一个),第二个只会在加载程序集后触发。既不能用于您自己的其他进程,也不能显示整个探测过程。
我注意到使用 RyuJIT 时,由于编译和加载编译后的 IL 的方式不同,某些绑定看起来略有不同,顺序也不同。虽然我已经能够研究和解决绑定问题,但我非常不喜欢fuslogvw.exe
作为一种耗时(尽管是一种有用且有用的工具)的工具。因此,我开始(相当徒劳)寻找更好的工具来监控探测过程。