9

J'ai créé mon projet sur Visual Studio 2008, ainsi que des fichiers RDLC sur celui-ci. Mais maintenant, quand j'ouvre la solution sur Visual Studio 2010 et que je veux ouvrir le fichier RDLC, il me montre un avertissement.Visual Studio 2010 demande de convertir RDLC créé sur VS2008 au format RDLC 2008?

C'est un peu drôle. Le rapport a été créé sur VS2008 et VS2010 demande à convertir au format 2008. Peut-être qu'il y avait un problème sur mon installation VS2008 qui a créé des fichiers RDLC en utilisant un format ancien (2005 ??!)

Le problème est, lorsque vous confirmez avec le bouton Ok, faire quelques ajustements de conception et exécuter l'application, il jette un erreur sur 'Rapport 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

Il semble que Visual Studio 2008 n'est pas compatible avec les fichiers RDLC SQL Server 2008? VS 2008 utilise toujours le schéma RDLC SQL Server 2005 tel qu'il se trouve sur mon fichier RDLC:

+0

Et voici la définition correcte au format RDLC 2008:

Répondre

1

Voici une solution de contournement.

  • Ne pas convertir ou modifier vos rapports dans VS2010 (Theres quelque chose de mal là-bas)

  • Report Viewer 2008 Installer Installer

  • Business Intelligence SQL Server Management Studio 2008

  • Dans SQL Server Business Intelligence, créez un projet vide pour vos rapports.

  • Renommez les extensions de fichier en .rdl ajoutez vos fichiers rdl existants dans ce projet.

  • Construire et déployer votre projet

2

Juste pour effacer votre confusion sur les versions:

Lorsque Visual Studio 2008 a été publié, le schéma RDL 2008 n'a pas été publié. Et donc VS 2008 supporté le schéma RDL 2005 seulement. Le schéma RDL 2008 est pris en charge par VS 2010. RDL Schema est une version antérieure à la version Visual Studio, et comme vous pouvez le voir, elle est parfois à l'origine d'une certaine confusion.

10

Je rencontre un problème similaire lors de la conversion d'une version antérieure de rdlc à VS2010. La conversion est correcte, ce qui doit arriver est que les références à Microsoft.ReportViwer.Common doivent être changées de la version 9 à la version 10. Faites de même avec Microsoft.ReportViewer.WebForms. Vous devrez également changer toutes les références de la version 9 dans le web.config et dans les pages qui contiennent le contrôle ReportViewer à la version 10. Cela a résolu tous mes problèmes et a été en mesure de modifier le rapport dans VS2010.

+0

C'était une réponse beaucoup plus simple que les autres sur ce sujet (bien que votre message soit un peu plus récent que les autres) - Merci! – Josh

+0

Vous devrez également mettre à jour les références d'assemblage dans l'app/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

Ceci est beaucoup plus simple que la réponse qui est définie comme une réponse ...

Tout ce que vous devez faire est de retirer vos références à ReportViewer de votre projet (car ceux-ci sont encore pointant vers la version 9), puis allez ajouter des références et sélectionnez les références ReportViewer qui sont la version 10 ..

Questions connexes