7

VS-2005 と VS-2010 がインストールされています。Crystal Reports は VS-2010 用に個別にダウンロードできるので、ダウンロードしてインストールしました。私の古いプロジェクトは、Crystal Reports バージョン 10.0 を使用する VS-2010 にありました。新しいプロジェクトは、Crystal Reports バージョンが 13.0 の VS-2010 にあります。

単一のレポートで VS-2010 で小さなアプリケーションを作成しました。このプロジェクトを実行しようとすると、次のエラーが表示されます。

The type 'CrystalDecisions.Web.CrystalReportViewer' exists in both 'c:\Windows\assembly\GAC_MSIL\CrystalDecisions.Web\10.2.3600.0__692fbea5521e1304\CrystalDecisions.Web.dll' and 'c:\Windows\assembly\GAC_MSIL\CrystalDecisions.Web\13.0.2000.0__692fbea5521e1304\CrystalDecisions.Web.dll'

The indirectly-referenced assembly 'BusinessObjects.Licensing.KeycodeDecoder, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304' could not be found. This assembly is not required for analysis, however, analysis results could be incomplete. This assembly was referenced by: C:\Windows\assembly\GAC_MSIL\CrystalDecisions.CrystalReports.Engine\13.0.2000.0__692fbea5521e1304\CrystalDecisions.CrystalReports.Engine.dll.

古い Crystal Reports (つまり、バージョン 10) をアンインストールできません。これらを並べて機能させる方法と、GACおよびweb.configファイルで必要な変更。

4

1 に答える 1

6

これは、Crystal Reportsの既知の問題です。GAC のサイド バイ サイド バージョンではうまくいきません。

SAPから:

Crystal Reports の各バージョンには、正しくデプロイする必要がある独自のランタイムがあるため、デプロイされたランタイムが、プロジェクトで参照されている Visual Studio .NET 用の Crystal Reports アセンブリと一致していることが重要です。

gacutil /u /f古い Crystal Reports アセンブリを強制的にアンインストールするために使用します。

できない場合は、Crystal Reports for Visual Studio 2005 をアンインストールする必要があります。

アセンブリを共有フォルダー (例: '..\3rdParty\10.5.3700.0') にコピーして、GAC の代わりにそのフォルダーへのファイル参照を行うことで、並列プロジェクトを維持することができます。秘訣は、Crystal をコピーすることです。コマンドライン経由で GAC からアセンブリを報告します。

> copy c:\WINDOWS\assembly\GAC_MSIL\CrystalDecisions.CrystalReports.Engine\10.5.3700.0__692fbea5521e1304\CrystalDecisions.CrystalReports.Engine.dll c:\dev\3rdParty\10.5.3700.0

デプロイされているアセンブリを検出するには:

gacutil /l

次に、コピーしたアセンブリを GAC からアンインストールするだけです。

于 2012-03-17T10:30:38.347 に答える