所以我有一个页面可以显示各种报告。当我使用旧报告运行应用程序时,此工作正常。但是,当我使用新版本的报告运行应用程序时,我收到此错误。
ASP.NET runtime error: The base class includes the field 'reportViewer',
but its type (CrystalDecisions.Web.CrystalReportViewer)
is not compatible with the type of control
(CrystalDecisions.Web.CrystalReportViewer).
从我收集的内容中寻找此错误的解决方案,它与运行不同版本或更新版本的CR(Crystal Reports)有关。但据我所知,我没有更改或更新CR。
我在web.config中存储的用于我使用水晶报告的参考的版本是:
<add assembly="CrystalDecisions.Web, Version=12.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.Shared, Version=12.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.ReportSource, Version=12.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.Enterprise.Framework, Version=12.0.1100.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.Enterprise.Desktop.Report, Version=12.0.1100.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.ReportAppServer.Controllers, Version=12.0.1100.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.CrystalReports.Engine, Version=12.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.ReportAppServer.DataDefModel, Version=12.0.1100.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.Enterprise.InfoStore, Version=12.0.1100.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.Enterprise.Viewing.ReportSource, Version=12.0.1100.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
前一个开发人员提供的解决方案是手动修改.csproj文件并将版本#替换为版本12的正确版本。虽然这导致我出错而无法找到VS System.Web.Extentions.dll。
所以我想知道的是,我的申请究竟出了什么问题,我该如何纠正这个问题。
答案 0 :(得分:3)
我认为第一步应该是卸载开发机器上的每个版本的水晶,并且只安装与服务器上存在的完全相同的水晶。
如果之前的开发人员说要手动修改.csproj,那么你可能会有错误的版本,或者你有多个版本,并且它在某个地方变得混乱。
答案 1 :(得分:0)
当我的应用程序加载两次相同的程序集时,我收到了类似的错误消息。我想我们正在使用CAB来加载程序集。在某些时候,CAB所需的程序集列表包含每个程序集两次,一次是8.3文件名格式,再次是长文件名格式。 CAB认为它们是不同的组件并加载它们。我不记得是怎么回事。但是当我们确定上面的问题消失了。