我使用了一個模擬工具,它使用Profiling API來即時重寫IL指令。我們的客戶通常擁有多個使用分析API的商業產品,並且在很多情況下,我們的分析器無法加載。是否有檢測.NET Profiler存在的API?
我想通過檢測.NET Profiler的存在來改善客戶體驗。如果發現第三方分析器,我想打印一條消息,以幫助客戶正確配置其環境。
到目前爲止,我還沒有找到可靠的方式來檢測.NET Profiler的存在。我想過解析ID爲1022的Windows應用程序日誌消息,並試圖通過進程ID進行匹配,但看起來很片面。我檢查了SSCLI實現,結果發現有一個功能IsProfilerPresent(),它執行所需的檢查。是否有類似的公共Microsoft API可供使用?
所有分析器都使用CLR提供的同一個低級分析器接口。所以像IsProfilerPresent()這樣的東西不會告訴你任何有關正在使用的特定分析器的信息。 –
是的,這是真的。我希望能得到包含profiler組件的文件名(.dll)。然後我想我會檢查它的有趣的屬性,如「文件描述」,「產品名稱」等。所以,我想我希望GetProfilerModuleFileName(...)函數。我將嘗試使用Windows應用程序日誌方法。謝謝。 –