表达式宿主程序集数量不断增长

6
我有一个WinForms 2.0应用程序,其中包含大约18个使用Microsoft ReportViewer创建的报告。 每次启动报告时都会创建一个动态程序集(expression_host_xxxxxx.dll)。此动态程序集加载到内存中,并将在应用程序运行期间保留下来,消耗资源。 即使我们只有一个报告并且重复启动它3次,我们也会在内存中获得3个这样的expression_host程序集。
有没有办法防止创建这些程序集或在完成后卸载这些程序集?
谢谢。
1个回答

4

我已经找到了一个解决方案。在reportviewer控件中,您可以指定在所谓的沙盒应用程序域中执行报表:

`rpv1.LocalReport.ExecuteReportInSandboxAppDomain();`

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


这个返回了一个已弃用的消息,还有其他想法吗? - Neo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接