6

Microsoft ReportViewer で作成された約 18 個のレポートを含む WinForms 2.0 アプリケーションがあります。レポートが開始されるたびに、動的アセンブリが作成されます (expression_host_xxxxxx.dll)。この動的アセンブリはメモリに読み込まれ、リソースを消費するアプリケーション ランタイムの残りの部分にとどまります。レポートが 1 つしかなく、これを 3 回開始した場合でも、メモリ内にそのような 3 つの expression_host アセンブリが取得されます。

これらのアセンブリが作成されないようにする方法、または完了後にこれらのアセンブリをアンロードする方法はありますか?

ティア

4

1 に答える 1

4

私はすでに解決策を見つけました。reportviewer コントロールでは、いわゆるサンドボックス アプリケーション ドメインでレポートを実行するように指定できます。

`rpv1.LocalReport.ExecuteReportInSandboxAppDomain();`

Expression_Host アセンブリは、レポートで使用した式を評価するために必要なため、これによって作成が妨げられることはありません。ただし、レポートは新しいアプリケーション ドメインで開始されます。その新しいアプリケーション ドメインは、レポートの終了後にアンロードされます。その結果、そのドメインに読み込まれたアセンブリもアンロードされます。

于 2009-07-20T16:22:55.987 に答える