9

He creado mi proyecto en Visual Studio 2008, así como archivos RDLC en él. Pero ahora, cuando abro la solución en Visual Studio 2010 y quiero abrir un archivo RDLC, me muestra una advertencia.¿Visual Studio 2010 está pidiendo convertir RDLC creado en formato VS2008 a RDLC 2008?

Eso es un poco raro. El informe fue creado en VS2008 y VS2010 está solicitando la conversión al formato 2008. Tal vez hubo un problema en mi instalación VS2008 que creó archivos RDLC usando algún formato antiguo (2005 ??)

El problema es que cuando confirmas con el botón Ok, realizas algunos ajustes de diseño y ejecutas la aplicación, arroja un error en 'Informe principal':

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)} 
+0

parece Visual Studio 2008 no es compatible con los archivos de RDLC SQL Server 2008? VS 2008 sigue utilizando el esquema SQL Server 2005 RDLC como se encuentra en mi archivo RDLC:

+0

Y aquí está la definición correcta del formato RDLC 2008:

Respuesta

1

Aquí hay una solución.

  • No convertir o editar sus informes en VS2010 (hay algo mal allí)

  • Instalar Report Viewer 2008 Instalar

  • SQL Server Business Intelligence Studio 2008

  • en SQL Server Business Intelligence, crear un proyecto vacío para sus informes

  • Cambie el nombre de las extensiones de archivo a .rdl agregue sus archivos rdl existentes en este proyecto.

  • construir y desplegar su proyecto

2

sólo para aclarar su confusión acerca de las versiones:

Cuando Visual Studio 2008 fue puesto en libertad, RDL 2.008 esquema no fue puesto en libertad. Y, por lo tanto, VS 2008 solo admite el esquema RDL 2005. El esquema de RDL 2008 es compatible con VS 2010. RDL Schema es una versión más lenta que la versión de Visual Studio, y como puede ver, a veces es la causa principal de cierta confusión.

10

experimento un problema similar cuando se convierte una de las versiones anteriores de rdlc a VS2010. La conversión está bien, lo que debe suceder es que las referencias a Microsoft.ReportViwer.Common se deben cambiar de la versión 9 a la versión 10. Haga lo mismo con Microsoft.ReportViewer.WebForms también. También deberá cambiar todas las referencias de la versión 9 en web.config y en las páginas que contienen el control ReportViewer a la versión 10. Esto resolvió todos mis problemas y pudo modificar el informe en VS2010.

+0

Esa fue una respuesta mucho más simple que las otras en este hilo (aunque tu publicación es un poco más nueva que las demás) - ¡Gracias! – Josh

+0

También necesitará actualizar las referencias de ensamblaje en la aplicación/web.config – solidau

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

Esto es mucho más simple que la respuesta que se establece como una respuesta ...

Todo lo que necesita hacer es quitar sus referencias a ReportViewer de su proyecto (ya que estos siguen apuntando a la versión 9), y luego ir a agregar referencias y seleccionar las referencias ReportViewer que son la versión 10 ..