JIT 時にメソッドにコードを挿入する CLR プロファイラーを作成しました。挿入するコードは .NET 3.5+ に依存します。プロファイラーの初期化時に使用可能な .NET Framework のバージョンを検出するにはどうすればよいICorProfilerCallback::Initialize
ですか ( )。
理想的には、.NET 3.5 以降がインストールされていない場合は、プロファイラーをロードしないようにしたいと思います。つまり、.NETCORPROF_E_PROFILER_CANCEL_ACTIVATION
から戻ることを意味しInitialize
ます。後で (モジュールの読み込み時などに) バージョンを検出しないと、プロファイリング フラグが設定され、特定の CLR 最適化が無効になります。これは、プロファイラーが実際には機能しないため望ましくありません。