ClickOnce を使用して 500 人以上のユーザーにデプロイされた WPF 課金ソリューションがあり、レポートには CrystaReports2010 が使用され、ユーザーの 85% のマシンに WindowsXP がインストールされています :(
Crystal Reports Viewer の組み込みのエクスポート ボタンを使用してレポートをエクスポートするまでは、Crystal Reports は WindowsXP マシンで正常に動作します。ユーザーがこれを行った場合、エクスポート プロセスは正常に完了しますが、Crystal Reports で他のレポートを開くことはできません。彼がアプリケーションを再起動するまで解決策。
エクスポート後に新しいレポートを開こうとすると、次のエラーが表示されます。
レポートをアプリケーションの .exe ファイル外のコンテンツ外部リソースとしてソリューションに保存し、次のようにオンデマンドで読み込みます。
var report = new ReportDocument();
report.Load(@"Reports\MyReport.rpt");
ユーザーがレポートを閉じた後、レポート ドキュメント オブジェクトを閉じて破棄するようにしたので、メモリ リークや開いているレポートの最大数を超えないようにしました。
ソリューション内のレポートを埋め込みリソースとして保存するように実装を変更した場合、問題は解決されますが、レポートのサイズが比較的大きい (200KB ~ 450KB) ため、大きな DLL ファイルになるため、これはオプションではありません。これは、レポートに変更を加えた新しいバージョンをリリースするたびに、ClickOnce を介してクライアントにダウンロードされます! もう 1 つのバリエーションは、たとえば 4 つのレポートを 1 つの DLL にグループ化することです。それでも問題は同じです (1MB ~ 2MB は依然として大きなチャンクです)。多くのレポートがあり、クライアントのポリシーの変更に応じて、これらのレポートの変更要求が頻繁に寄せられることを知っています。助けてください!