2009-07-20 5 views
6

Microsoft ReportViewer로 만든 18 개의 보고서가있는 WinForms 2.0 응용 프로그램이 있습니다. 보고서가 시작될 때마다 동적 어셈블리가 만들어집니다 (expression_host_xxxxxx.dll). 이 동적 어셈블리는 메모리에로드되며 나머지 응용 프로그램 런타임 소비 리소스를 유지합니다. 우리는 단지 1 개의 보고서 만 가지고 있고 이것을 3 번 시작한다고하더라도, 우리는 3 개의 그러한 expression_host 어셈블리를 메모리에 얻습니다.Expression_Host 어셈블리의 수가 계속 증가하고 있습니다.

완료 후에 이러한 어셈블리가 생성되지 않도록하거나 이러한 어셈블리를 언로드 할 수있는 방법이 있습니까?

TIA

답변

4

는 이미 해결책을 발견했다. ReportViewer 컨트롤에 당신은 소위 샌드 박스 응용 프로그램 도메인에서 리포트를 실행하는 데 의미 할 수 있습니다 이들은 당신이 사용한 표현을 평가하는 데 필요한 때문에

`rpv1.LocalReport.ExecuteReportInSandboxAppDomain();` 

이것은 Expression_Host 어셈블리의 생성을 방지 할 수 없습니다 귀하의 보고서. 그러나 새로운 응용 프로그램 도메인에서 보고서를 시작할 것입니다. 그런 다음 새 응용 프로그램 도메인은 보고서가 완료된 후 언로드되며 결과적으로 해당 도메인의로드 된 어셈블리도 언로드됩니다.

+0

이 메시지는 향후 제공되지 않을 예정입니다. – Neo

관련 문제