开发者

Visual Studio 2010 is asking to convert RDLC created on VS2008 to RDLC 2008 format?

I've created my project on Visual Studio 2008, as well RDLC files on it. But now, when I open the solution on Visual Studio 2010 and want to open RDLC file, it's showing me a warning.

That's a little funny. The report was created on VS2008 and VS2010 is asking to convert to 2008 format. Perhaps there was a problem on my VS2008 installation that created RDLC files using some ancient format (2005??!)

The problem is, when you confirm with Ok button, do some design ajustments and run the app, it throws an error on 'Main report':

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
    Inne开发者_运维知识库rException: {"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)}


I experience a similar problem when converting an earlier versions of rdlc's to VS2010. The conversion is fine, what needs to happen is that the references to Microsoft.ReportViwer.Common must be changed from version 9 to version 10. Do the same with the Microsoft.ReportViewer.WebForms as well. You will also need to change all references of version 9 in the web.config and in the pages that contain the ReportViewer control to version 10. This solved all my problems and was able to modify the report in VS2010.


This is far simpler than the reply that is set as an answer...

All you need to do is remove your references to ReportViewer from your project (as these are still pointing to version 9), then go to add references and select the ReportViewer references that are version 10..


Just to clear your confusion about the versions :

When Visual Studio 2008 was released, RDL 2008 schema was not released. And hence VS 2008 supported RDL 2005 schema only. RDL 2008 schema is supported by VS 2010. RDL Schema is one version behind than the Visual Studio version, and as you can see it is sometimes the root cause of some confusion.


Here´s a workaround.

  • Do not convert or edit your reports in VS2010 (there´s something wrong there)

  • Install Report Viewer 2008 Install

  • SQL Server Business Intelligence Studio 2008

  • In SQL Server Business Intelligence, create an empty project for your reports

  • Rename file extensions to .rdl add your existing rdl files in this project.

  • Build and deploy your project


<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>
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜