Visual Studio 2010 просит преобразовать RDLC, созданный на VS2008, в формат RDLC 2008? - PullRequest
9 голосов
/ 25 мая 2010

Я создал свой проект в Visual Studio 2008, а также файлы RDLC. Но теперь, когда я открываю решение в Visual Studio 2010 и хочу открыть файл RDLC, он показывает мне предупреждение.

Это немного смешно. Отчет был создан на VS2008, и VS2010 просит преобразовать его в формат 2008 года. Возможно, была проблема с моей установкой VS2008, которая создавала файлы RDLC, используя какой-то древний формат (2005 ??!)

Проблема в том, что когда вы подтверждаете с помощью кнопки Ok, делаете некоторые настройки и запускаете приложение, оно выдает ошибку «Основной отчет»:

ex.InnerException
{"The definition of the report 'Main Report' is invalid."}
    [Microsoft.Reporting.DefinitionInvalidException]: {"The definition of the report 'Main Report' is invalid."}
    Data: {System.Collections.ListDictionaryInternal}
    HelpLink: null
    InnerException: {"The report definition is not valid.  Details: The report definition has an invalid target namespace 'http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition' which cannot be upgraded."}
    Message: "The definition of the report 'Main Report' is invalid."
    Source: "Microsoft.ReportViewer.Common"
    StackTrace: "   at Microsoft.Reporting.ReportCompiler.CompileReport(CatalogItemContext context, Byte[] reportDefinition, Boolean generateExpressionHostWithRefusedPermissions, ReportSnapshotBase& snapshot)\r\n   at Microsoft.Reporting.StandalonePreviewStore.StoredReport.CompileReport()\r\n   at Microsoft.Reporting.StandalonePreviewStore.StoredReport.get_Snapshot()\r\n   at Microsoft.Reporting.StandalonePreviewStore.GetCompiledReport(CatalogItemContext context, Boolean rebuild, ReportSnapshotBase& snapshot)\r\n   at Microsoft.Reporting.LocalService.GetCompiledReport(CatalogItemContext itemContext, Boolean rebuild, ReportSnapshotBase& snapshot)\r\n   at Microsoft.Reporting.LocalService.CompileReport(CatalogItemContext itemContext, Boolean rebuild)\r\n   at Microsoft.Reporting.WinForms.LocalReport.CompileReport()"
    TargetSite: {Microsoft.ReportingServices.ReportProcessing.PublishingResult CompileReport(Microsoft.ReportingServices.Diagnostics.CatalogItemContext, Byte[], Boolean, Microsoft.ReportingServices.Library.ReportSnapshotBase ByRef)}

Ответы [ 5 ]

10 голосов
/ 22 марта 2012

У меня возникла похожая проблема при конвертации более ранних версий rdlc в VS2010. Преобразование в порядке, что должно произойти, это то, что ссылки на Microsoft.ReportViwer.Common должны быть изменены с версии 9 на версию 10. То же самое нужно сделать и с Microsoft.ReportViewer.WebForms. Вам также необходимо изменить все ссылки версии 9 в файле web.config и на страницах, которые содержат элемент управления ReportViewer, на версию 10. Это решило все мои проблемы и смогло изменить отчет в VS2010.

5 голосов
/ 28 июня 2012

Это намного проще, чем ответ, установленный в качестве ответа ...

Все, что вам нужно сделать, это удалить ссылки на ReportViewer из вашего проекта (поскольку они все еще указывают на версию 9), затем перейти к добавлению ссылок и выбрать ссылки на ReportViewer версии 10 ..

2 голосов
/ 13 сентября 2010

Просто чтобы очистить вашу путаницу с версиями:

Когда была выпущена Visual Studio 2008, схема RDL 2008 не была выпущена. И поэтому VS 2008 поддерживает только схему RDL 2005. Схема RDL 2008 поддерживается VS 2010. Схема RDL на одну версию отстает от версии Visual Studio, и, как вы можете видеть, она иногда является причиной некоторой путаницы.

1 голос
/ 01 июля 2010

Вот обходной путь.

  • Не конвертируйте и не редактируйте ваши отчеты в VS2010 (там что-то не так)

  • УстановитьСредство просмотра отчетов 2008 Установка

  • SQL Server Business Intelligence Studio 2008

  • В SQL Server Business Intelligence создайте пустой проект для отчетов

  • Переименуйте расширения файлов в .rdl, добавьте в этот проект существующие rdl-файлы.

  • Создайте и разверните свой проект

0 голосов
/ 29 мая 2012
<httpHandlers>
  <add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false"/>
  <add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false"/>
</httpHandlers>

<system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <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>
...