我使用 .NET 4.5 编译的探查器可以附加到 .NET 3.5 应用程序吗?

Can my profiler that is compiled with .NET 4.5 attach to a .NET 3.5 application?

我们有一个自定义编写的探查器,它使用 COR_PROFILER 附加到 .NET 应用程序。它曾经是用 .NET 3.5 编译的(与它分析的应用程序相同),但我现在正在考虑用 .NET 4.5 编译它。

如果我做出那个转换,新的分析器二进制文件是否仍然能够分析使用 .NET 3.5 框架编译的应用程序?

我最初的实验失败了,所以现在我不确定这是我的设置问题还是技术上不可能。


更准确地说:我正在使用 VS2013 和 PlatformTools v120 编译此 C++ 探查器。我曾经用 VS2010 和 PlatformTools v100 编译它。 v100 可以分析 3.5 和 4.0 程序集,v120 只能分析 4.0 程序集。

事实证明,让我的分析器实现 ICorProfiler3 接口(在 .NET 4 中引入)意味着它不能再分析早于 .NET 4 的程序集(现在我写它,听起来非常合乎逻辑...... :P).

根据 this MSDN article,使用旧的 ICorProfiler2 接口意味着您可以分析旧的和新的程序集,但您需要设置一个特殊的环境变量以使 .NET 4 仍然接受该分析器。