3

我们的项目是用 VS 2010 构建的,报告是用 SSRS 2005 构建的,在这种环境下工作得很好。我们正在尝试迁移到 SSRS 2012。在运行时我们收到此错误

'Microsoft.ReportViewer.Common, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.

我将文件“MicrosoftReportViewerCommon.dll”复制到bin文件夹,但它的版本是10.0.xx,我不知道如何找到8.0.0.0版本。

我不知道我们应该做什么。是否应该将此文件添加到项目中?还是应该将项目中的引用更改为引用另一个文件版本?这应该怎么做?

在 web 表单中,我们有这行代码:

<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>

在 web.config 中:

<system.web>
    <httpHandlers>
   <add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
validate="false" />
  </httpHandlers>
......
</system.web>



<system.webServer>
    <handlers>
        <add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
    </handlers>
</system.webServer>

任何帮助表示赞赏。

4

2 回答 2

3

在网上搜索了 2 天后,我想出了如何克服这个错误。我必须安装ReportViewer 2005,这个安装程序会自动在 GAC 中注册“Microsoft.ReportViewer.Common Version=8.0.0.0”。

有人告诉我这不是一个好的做法,它只是一种解决方法,因为该项目没有使用最新的控件运行,并且仍在使用旧的控件。

目前该项目运行良好,但我希望一些机构为我提供真正的解决方案。

于 2015-09-29T10:01:55.917 回答
1

我有一个类似的问题,发现我需要三个文件:

Microsoft.ReportViewer.Common.dll Microsoft.ReportViewer.ProcessingObjectModel.dll Microsoft.ReportViewer.WebForms.dll

配置文件如下所示:

   <assemblies>
    <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
    <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
    <add assembly="Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
    <add assembly="Microsoft.ReportViewer.Common, Version=9.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
   </assemblies>
   <buildProviders>
    <add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.Common, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
   </buildProviders>
于 2015-09-28T20:57:11.817 回答