【问题标题】:Can my profiler that is compiled with .NET 4.5 attach to a .NET 3.5 application?使用 .NET 4.5 编译的探查器可以附加到 .NET 3.5 应用程序吗?
【发布时间】:2015-06-14 15:15:17
【问题描述】:

我们有一个自定义编写的分析器,它使用 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 程序集。

【问题讨论】:

  • 通常分析器是向后兼容的。面向 .NET 4.5 的探查器应与 .NET 3.5 一起使用。尝试搜索确切的错误或查看供应商网站 - 它应该发布。例如,dotTrace 支持:“各种 .NET 应用程序,包括基于 .NET Framework 2.x 到 4.5 以及 Silverlight 4 和 5 的应用程序。”
  • 您确定不需要特殊处理吗?如果我使用目标框架 4.0 或 4.5 编译示例应用程序,我的分析器工作得很好,但使用目标框架 3.5 它什么都不做

标签: c# .net profiling .net-framework-version


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-18
    • 2010-10-23
    • 1970-01-01
    • 2011-04-23
    • 2023-03-18
    • 1970-01-01
    • 2011-05-01
    • 2010-09-16
    相关资源
    最近更新 更多