locked
VS2015 Produces Invalid Report Definition Targeting SSRS 2012 RRS feed

  • Question

  • I am running SQL Server 2012 (11.0.6020) on Windows Server 2012R2. I installed Visual Studio 2015 and the SSDT package released after the June 1 GA for SQL Server 2016. I created a new Report Server Project with a simple dataset and report with 1 table. It ran fine in preview, but when I tried to deploy to my Report Server, the report deployment failed (Data Source and Dataset both deployed). I have since spent several hours trying to track down the issue. I changed my deployment target to SQL Server 2008/2012/2014. I deleted and recreated the report. However, it still won't deploy, and now it won't preview, either. Here's the error message:

    [rsInvalidReportDefinition] The definition of this report is not valid or supported by this version of Reporting Services. The report definition may have been created with a later version of Reporting Services, or contain content that is not well-formed or not valid based on Reporting Services schemas. Details: Data at the root level is invalid. Line 1, position 7985.

    Also, the rdl file has this <Report> tag:

    <Report MustUnderstand="df" xmlns="http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner" xmlns:df="http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition/defaultfontfamily">

    Do the references to the 2016 schemas create a problem when deploying to 2012?

    How do I configure VS 2015 so that I can build reports for our SQL Server 2012 infrastructure?

    Eric

    Update: After a bit more fumbling, I opened the project in VS 2013 with SSDT-BI installed. The existing report would not build, but I was able to create a new report with the same data which worked fine. I then compared the underlying RDL files - the report built in VS2015 not only had the more extensive <Report> tag, it also had a <Report Sections> tag and a single <Report Section> inside, neither of which is readable by SSRS 2012. I did see a note suggesting the correct solution was to change the target server type in the deployment options, but that did not seem to affect how new reports are set up (i.e., with the newer <Report> tag and related attributes.

    Update2: I created a new Report Server Project in VS2015, and immediately set the deployment target to SQL Server 2014 and earlier. I created the same Data Source and shared Dataset and simple report as before. There was a problem with the shared Dataset (something about missing a Name attribute, which seems unlikely), so I ended up embedding the dataset definition - this time it works! And, the rdl on the VS side still has all the new attributes, so I assume VS is doing something to strip it out in deployment. I don't understand why it did not work on the first project - but it seems to be connected to setting the deployment target early in the process.



    • Edited by Eric F Monday, June 13, 2016 7:13 PM
    Monday, June 13, 2016 5:24 PM

Answers

  • In the up coming release, 17.2 of SSDT for VS 2015, we have a fix for this issue. It is due to release on the 20th pending any major issues coming up.

    The fix is to respect the version of RDL that has been opened as long as no new features are being used. If you open a 2012 RDL, you will still get a 2012 RDL saved as long as no new features are used.

    We put more enhancements like Save AS\Version, or giving the developer a property for version of the RDL in our backlog.


    Brad Syputa, Microsoft SQL Server Business Intelligence This posting is provided ASIS with no warranties.

    Wednesday, January 18, 2017 12:57 AM
  • I just had exactly the same issue with the 2016 namespace in the reports causing them not to be compatible with older SSRS servers (& exactly the same error message), but managed to solve the issue by 'rebuilding' the project targeting 2008/2012/2014. The rebuild definitely seemed to work (for me anyway)...
    Thursday, June 16, 2016 10:03 AM

All replies

  • I just had exactly the same issue with the 2016 namespace in the reports causing them not to be compatible with older SSRS servers (& exactly the same error message), but managed to solve the issue by 'rebuilding' the project targeting 2008/2012/2014. The rebuild definitely seemed to work (for me anyway)...
    Thursday, June 16, 2016 10:03 AM
  • I have a similar recurring issue - I have a solution with ~200 reports in it. The project is set to target SSRS 2008 R2 and later.  These reports were developed in VS2005 - VS2013.

    I recently installed VS2015, and when I build the report project with VS2015, I might receive the [rsInvalidReportDefinition] error on several reports.  If I then build a second time, the error goes away.  If I revert a report to an older (like a week ago) version and build, I'll get the error again.  Build a second time, and the error goes away.

    Note that I'm dealing 100% with existing reports which have been deployed 1000's of times across SSRS 2008 R2, 2012 and 2014 - I know very well that all of these reports are valid.

    There's something even flakier than usual in the SSDT 2015 report designer. 


    -cd Mark the best replies as answers!

    Thursday, August 11, 2016 11:24 PM
  • I've ran into this with SSDT 16.5 and VS2015 when trying to add new parent groups in matrices.

    I installed SSDT 16.5 with VS2013, and can add parent group with no issues. Just need to downgrade the RDL xml in order to work to with the report designer.

    It'd be nice to see this get fixed sooner rather than later.

    Wednesday, January 11, 2017 7:38 PM
  • In the up coming release, 17.2 of SSDT for VS 2015, we have a fix for this issue. It is due to release on the 20th pending any major issues coming up.

    The fix is to respect the version of RDL that has been opened as long as no new features are being used. If you open a 2012 RDL, you will still get a 2012 RDL saved as long as no new features are used.

    We put more enhancements like Save AS\Version, or giving the developer a property for version of the RDL in our backlog.


    Brad Syputa, Microsoft SQL Server Business Intelligence This posting is provided ASIS with no warranties.

    Wednesday, January 18, 2017 12:57 AM
  • Great to hear! Thanks for the update!
    Tuesday, January 24, 2017 11:57 PM