我有一个我写过的CLR分析器,它在JIT时将代码注入到方法中。我注入的代码取决于.NET 3.5+。如何检测在探查器初始化时(ICorProfilerCallback::Initialize
)可用的.NET Framework版本?
理想情况下,如果他们没有安装.NET 3.5+,我希望不会加载我的探查器,这意味着从CORPROF_E_PROFILER_CANCEL_ACTIVATION
返回Initialize
。如果我直到稍后才检测到版本(例如在模块加载时),那么将设置我的分析标志,并且将禁用某些CLR优化,这是不合需要的,因为分析器实际上不起作用。