.net 为什么可以';探查器没有连接吗?

.net 为什么可以';探查器没有连接吗?,.net,profiler,clr-profiling-api,.net,Profiler,Clr Profiling Api,我为.NET应用程序编写了一个小型分析器。它使用ICorProfilerCallback2接口 探查器在.NET 2.0应用程序中连接并运行良好,但在.NET>2.0(3.0、3.5、4.0)中不起作用。当我启动使用.NET 4.0编译的exe时,什么也不会发生,但是对于.NET 2.0,探查器会启动。 在运行托管exe之前,我正在设置以下变量 @Echo off set Cor_Enable_Profiling=0x1 set COR_PROFILER={67D8965A-8686-2639-

我为.NET应用程序编写了一个小型分析器。它使用
ICorProfilerCallback2
接口

探查器在.NET 2.0应用程序中连接并运行良好,但在.NET>2.0(3.0、3.5、4.0)中不起作用。当我启动使用.NET 4.0编译的exe时,什么也不会发生,但是对于.NET 2.0,探查器会启动。 在运行托管exe之前,我正在设置以下变量

@Echo off
set Cor_Enable_Profiling=0x1
set COR_PROFILER={67D8965A-8686-2639-9C24-E1F7D13EE105}
set COR_PROFILER_DLL=e:\Debug\Profiler.dll
set COR_PROFILER_PATH=e:\Debug\Profiler.dll
知道为什么会这样吗?它甚至没有进入蒂莫蒂

David Broman的帖子中可能包含了您讨论的问题:

对于CLR V4运行时,您应该在事件日志(使用事件查看器查看)中看到一些有用的信息,这些信息描述了探查器无法加载的原因

如果您不想使用博客中讨论的
COMPLUS\u ProfAPI\u profiler兼容性设置
设置,您还可以支持
ICorProfilerCallback3
接口来添加对V4运行时的支持

使用CLR V4,您可能还需要考虑并排的场景,其中V2和V4运行时都被加载到单个可执行文件中。有关更多信息,请参阅David的另一篇题为 '探查器、进程内并行CLR实例和免费测试线束' (遗憾的是,由于防止垃圾邮件,我也不能发布到它的链接)