在.NET中有没有办法启用Assembly.Load跟踪?我知道在调试器下运行它会给你一个很好的消息,比如“Loaded'assembly X'”但我希望在调试器外部获取正在运行的应用程序的程序集负载的日志,最好与我的Debug / Trace日志消息混合在一起。

我正在寻找我的应用程序中的各种内容,我基本上想知道触发特定程序集的动作是什么。

有帮助吗?

解决方案

获取应用程序的AppDomain并附加到AssemblyLoad事件。

示例(C#):

AppDomain.CurrentDomain.AssemblyLoad += new AssemblyLoadEventHandler(OnAssemblyLoad);

其他提示

Fusion Log Viewer是您的朋友。

[编辑]实际上这可能太过分了,AssemblyResolve事件也很好[编辑]

MS Visual Studio内置了此功能。

从MS Visual Studio的输出窗口的上下文菜单中选择“模块加载消息”,它将显示如下内容:

Loaded 'C:\Windows\assembly\GAC_64\mscorlib\2.0.0.0__b77a5c561934e089\mscorlib.dll'
Loaded 'C:\projects\trunk\bin\Tester.exe', Symbols loaded.
Loaded 'C:\projects\trunk\bin\log4net.dll'
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top