Expression_Host程序集的数量不断增加

时间:2009-07-20 09:52:53

标签: c# winforms reportviewer

我有一个WinForms 2.0应用程序,其中包含使用Microsoft ReportViewer创建的大约18个报表。 每次启动报表时都会创建一个动态程序集(expression_host_xxxxxx.dll)。此动态程序集将加载到内存中,并留在应用程序运行时消耗资源的其余部分。 即使我们只有1个报告,我们开始这3次,我们在内存中得到3个这样的expression_host程序集。

有没有办法阻止这些程序集的创建或在我们完成后卸载这些程序集?

TIA

1 个答案:

答案 0 :(得分:4)

我已经找到了解决方案。在reportviewer控件上,您可以表示在所谓的沙箱应用程序域中执行报告:

`rpv1.LocalReport.ExecuteReportInSandboxAppDomain();`

这不会阻止Expression_Host程序集的创建,因为这些是评估报表中使用的表达式所必需的。然而,它将在新的应用程序域中启动报告。然后,在报告完成后卸载该新应用程序域,结果,该域中的任何已加载程序集也将被卸载。

相关问题