汇编绑定日志查看器存在一些错误(例如,往往无法清空日志),并且功能相对较少(搜索、排序、过滤几乎都不可用)。因此,我想知道是否存在以下情况:
1. 已存在替代方案; 2. 全局挂钩程序集解析事件是可能的,因此我可以自己完成这个任务; 3. 微软已经在某个地方发布了源代码,我们被允许分叉。
除了第二个选项外,我知道你可以相对简单地创建一个CLR主机实现(尽管不是微不足道的),但如果你需要比现有的融合日志查看器更精细的控制,那似乎有点过头了。
请注意,我已经看到了这个答案,但那似乎并不能回答这个问题。
1. 已存在替代方案; 2. 全局挂钩程序集解析事件是可能的,因此我可以自己完成这个任务; 3. 微软已经在某个地方发布了源代码,我们被允许分叉。
除了第二个选项外,我知道你可以相对简单地创建一个CLR主机实现(尽管不是微不足道的),但如果你需要比现有的融合日志查看器更精细的控制,那似乎有点过头了。
请注意,我已经看到了这个答案,但那似乎并不能回答这个问题。
回答一些评论:
我知道程序集重定向,AssemblyResolve
和AssemblyLoad
事件,但第一个只能作为最后的手段(探测链中的最后一个),第二个只会在装载了一个程序集之后才会触发。两者都不能用于其他进程,并且都无法显示整个探测过程。
我注意到使用RyuJIT时,某些绑定会略有不同,以不同的顺序出现,这是由于编译和加载编译后的IL的不同方式所致。虽然我已经能够研究和解决绑定问题,但我非常不喜欢fuslogvw.exe
,因为它耗时很长(尽管是独一无二且有帮助的工具)。因此,我开始寻找更好的工具来监视探测过程,但结果却很少。
AppDomain.AssemblyLoad
是您正在寻找的吗?这将使您能够检查加载到应用程序域中的每个程序集。AppDomain.AssemblyResolve
事件在加载之前提供了所有程序集,因此它可以让您确定程序集错误。 - xxbbccapp.config
绑定重定向来解决,但无法使用AssemblyResolve
(即强名称重定向)。据我所知,通过托管代码,没有办法显示整个探测过程,只有fuslogvw.exe
可以显示它们,但这个工具已经过时且难以使用。我希望有更好的方法来监视探测过程。我想我必须自己动手(也许与社区分享;)。 - Abel