Сборки Expression_Host продолжают расти - PullRequest
6 голосов
/ 20 июля 2009

У меня есть приложение WinForms 2.0 с 18 отчетами, созданными с помощью Microsoft ReportViewer. Каждый раз при запуске отчета создается динамическая сборка (expression_host_xxxxxx.dll). Эта динамическая сборка загружается в память и остается там до конца ресурсов, потребляющих время выполнения приложения. Даже если у нас есть только 1 отчет, и мы запускаем его, то есть 3 раза, мы получаем 3 таких сборки expression_host в памяти.

Есть ли способ предотвратить создание этих сборок или выгрузить эти сборки после того, как мы закончим?

ТИА

1 Ответ

4 голосов
/ 20 июля 2009

Я уже нашел решение. В элементе управления reportviewer вы можете указать, что нужно выполнить отчет в так называемом домене приложения для песочницы:

`rpv1.LocalReport.ExecuteReportInSandboxAppDomain();`

Это не помешает созданию сборок Expression_Host, поскольку они необходимы для оценки выражений, которые вы использовали в своем отчете. Однако он запустит отчет в новом домене приложения. Этот новый домен приложения затем выгружается после завершения отчета, и в результате любая загруженная сборка в этом домене также выгружается.

...