当 运行 SSRS 2012 时,VS 2010 未命中 "Microsoft.ReportViewer.Common Version=8.0.0.0"

VS 2010 misses "Microsoft.ReportViewer.Common Version=8.0.0.0" when running with SSRS 2012

我们的项目是用 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.x.x。我不知道如何找到版本 8.0.0.0.

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

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

<%@ 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>

感谢任何帮助。

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

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>

在网上搜索了 2 天后,我找到了解决此错误的方法。 我必须安装 ReportViewer 2005,此安装程序会自动在 GAC 中注册“Microsoft.ReportViewer.Common Version=8.0.0.0”。

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

目前该项目运行良好,但我希望有人能为我提供真正的解决方案。