clr profiler-添加没有GAC问题的帮助程序dll

时间:2019-03-11 17:27:42

标签: .net clr profiler

编写clr探查器时,您可能需要使用帮助程序类加载帮助程序dll。

由于这是一种有用的策略,因此有人问了这个问题,但是答案并未涉及这些解决方案中的很多问题,例如:

示例1- CLR profiler: issue in using DefineAssemblyRef

示例2-https://github.com/dotnet/coreclr/issues/3894(未提供实际解决方案)

总体而言,有一些选择可供考虑:

  1. GAC-这是一个不错的解决方案,但是它需要安装步骤,并且某些环境可能没有GAC(azure,Linux [具有.net核心])。

  2. 另一种方法是注入代码,该代码执行AssemblyResolve + = 类似于示例1中的内容-但这会导致涉及透明代码的问题,这些问题调用的是securityCritical等+ =代码。 或例如在IIS中实现的有关“高/中/ ...”信任级别的其他问题,可能使加载此辅助dll变得困难(即使它具有强名称)。

  3. 另一个大问题是,助手dll将被加载到特定的AppDomain中,而不是“ EE共享程序集注册表”。如果将dll引用注入到GAC dll中并且包含帮助程序dll的appDomain已关闭,则这可能会导致MultiDomainHost LoaderOptimization策略出现问题。

那么从没有GAC的clr探查器中加载帮助程序dll并避免所有这些问题的推荐方法是什么?

0 个答案:

没有答案