VS 2010 пропускает "Microsoft.ReportViewer.Common Version=8.0.0.0" при работе с 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.xx. Я не знаю, как найти версию 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>

Любая помощь приветствуется.

2 ответа

Решение

После 2 дней поиска в сети я разобрался, как преодолеть эту ошибку. Мне пришлось установить ReportViewer 2005, и этот установщик автоматически зарегистрирует "Microsoft.ReportViewer.Common Version=8.0.0.0" в GAC.

Мне сказали, что это не очень хорошая практика, и это просто обходной путь, потому что проект не запускается с использованием самых обновленных элементов управления и все еще использует старые.

Пока проект работает нормально, но я надеюсь, что какой-то орган обеспечит мне реальное решение.

У меня была похожая проблема, и я обнаружил, что мне нужно три файла:

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>
Другие вопросы по тегам