Click-Onceを使用してVS20031.1WindowsフォームアプリをVS2010に更新すると、アプリで使用されているCrystalレポートのバージョンもアップグレードする必要がありました。
ユーザーにローカル管理者がいる場合は、すべてが完全に機能します。残念ながら、ほとんどのユーザーは非常にロックダウンされており、何もインストールできません。これは、CR13バイナリのインストールに問題があります。クリックワンス設定で、すべてのCrystalDecisions。* dllをインクルード/必須としてマークしましたが、展開フォルダーに公開されていないため、他のサードパーティライブラリを使用するユーザーのマシンにコピーされません。これは、アプリが正常に起動することを意味しますが、ユーザーがレポートを実行しようとするとすぐに、次のエラーが発生します。
************** Exception Text **************
System.IO.FileNotFoundException: Could not load file or assembly 'CrystalDecisions.Windows.Forms, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304' or one of its dependencies. The system cannot find the file specified.
File name: 'CrystalDecisions.Windows.Forms, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304'
Include / Requiredとしてマークされていても、このファイルはデプロイされていません。すべてのユーザーを追跡して手動でインストールする必要はありません(グループポリシープッシュを実行するオプションはありません)。使用するCrystaldllは4つあります。
- CrystalDecisions.CrystalReports.Engine
- CrystalDecisions.ReportSource
- CrystalDecisions.Shared
- CrystalDecisions.Windows.Forms
これらのうち、実際に展開されているのはエンジンのみです。クリックワンスが他のもの(特にWindowsフォームdll)を展開しない理由と、それを説得する方法を誰かが知っていますか?
ありがとう!
編集:Crystal dllへの既存の参照を削除しようとしました(「C:\ ProgramFiles \ SAP BusinessObjects \ Crystal Reports for .NET Framework 4.0 \ Common \ SAP BusinessObjects Enterprise XI 4.0 \ win32_x86 \ dotnet」の下にあるCrystalインストールを指していました)。それらをプロジェクトにコピーし、[参照]タブから追加しますが、まだ展開されていません:(展開すべきではないことを示すフラグが設定されているようです。そのため、ビジュアルスタジオはそれらを無視しますか?