7

我安装了 VS-2005 和 VS-2010。由于 Crystal Reports 可作为 VS-2010 的单独下载,我下载并安装了它。我的旧项目在使用 Crystal Reports 10.0 版的 VS-2010 中。新项目在 VS-2010 中,其 Crystal Reports 版本为 13.0。

我用一个报告在 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)。如何使这些并行工作以及GACweb.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 回答