2009-07-20 84 views
6

我有一個WinForms 2.0應用程序,其中包含大約18個使用Microsoft ReportViewer創建的報告。 每次開始報告時,都會創建一個動態程序集(expression_host_xxxxxx.dll)。這個動態程序集被加載到內存中,並在那裏用於應用程序運行時的其餘部分消耗資源。 即使我們只有1個報告,我們開始這個3次,我們在內存中得到3個這樣的表達式主機程序集。Expression_Host程序集數量不斷增加

有沒有辦法阻止這些程序集的創建或在完成後卸載這些程序集?

TIA

回答

4

我已經找到了解決方案。在ReportViewer控件可以表示在所謂的沙盒應用程序域執行報告:

`rpv1.LocalReport.ExecuteReportInSandboxAppDomain();` 

這不會阻止Expression_Host組件的創建,因爲這些是必要的,以評估你已經在使用的表達式你的報告。但是,它會在新的應用程序域中啓動報告。報表完成後,新的應用程序域將被卸載,因此,該域中的任何加載的程序集也將被卸載。

+0

這回來與一個不推薦的消息,任何其他想法? – Neo 2012-02-21 14:33:26