SSRS report definition is newer than Server

91,781

Solution 1

I actually ran into a similar problem where a change I needed to make resulted in an "Undocumented Error/Invalid RDL Structure" error in 2016, so I edited the RDL file so I could open it in an earlier version and make my changes. Not too hard, but you need to make a couple of tag edits.

For new reports you should probably just use an older version, but for existing reports you can do this: (I reverted to 2008)

Actually wrote some superhackish code to do this as part of a blog post, but the manual edit is simple enough.

Solution 2

The settings below should be set to your sepecific version of SSRS, and then take the RDL from the \bin directory

Or, after updating the TargetServerVersion, simply use right click | deploy from the rdl.

The accepted answer is significantly more difficult/prone to error/unlikely to work across multiple versions of ssrs, and needs to be applied each time you change the rdl.

enter image description here

Solution 3

I had the same issue when switching to VS2017 and installed Report Designer Version 14.2.

For me only 3 steps needed to fix the issue.

1: Set Change the xmlns to "http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition"

2: Remove ReportSections" and "ReportSection" (Only Tags).

3: Remove report ReportParametersLayout section.

The only thing you need to memorize is to point xmlns to 2008/01

Other 2 steps can be seen in the error message after you change to 2008/01 and try to run the report.

Solution 4

If you are having trouble in a Visual Studo 2017 C# desktop application with LocalReport (RDLC), please see this answer:

https://stackoverflow.com/a/45149488/6732525

Solution 5

I recently ran into this issue as well. I found that I only needed to change two items in the .rdl file in question.

  1. Change FROM:

    Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner"

    TO:

    Report xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner" xmlns:cl="http://schemas.microsoft.com/sqlserver/reporting/2010/01/componentdefinition" xmlns="http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition"

Unlike other responses, I needed 2010 instead of 2008. I would check an .rdl file that you have already deployed.

  1. Remove the "ReportParametersLayout" block.

Note: If I removed ReportSections block, it did not work as others have noted.

Share:
91,781
M Kenyon II
Author by

M Kenyon II

.Net coder from way back. I started programming with Classic ASP, and then went into VB.Net 1.0! Now I work mostly with C#, but love working with SQL. Always eager to learn, ready to try something new! :)

Updated on September 03, 2020

Comments

  • M Kenyon II
    M Kenyon II over 3 years

    I created some reports in Visual Studio 2015 with all the latest updates. However, when I try to deploy the reports I get this message:

    The definition of this report is not valid or supported by this version of Reporting Services.
    11:40:28 Error
    The report definition may have been created with a later version of Reporting Services, or contain content that is not
    11:40:28 Error
    well-formed or not valid based on Reporting Services schemas. Details: The report definition has an invalid target
    11:40:28 Error
    namespace 'http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition' which cannot be upgraded.

    The first lines of the .rdl file are set up like this:

    <?xml version="1.0" encoding="utf-8"?>
    <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">
    

    Can I change the schema definition? If so, to what? I tried just changing 2016 to 2014 or 2012, but neither worked.

    Is there a place I can go to see valid definitions?

  • MarceloBarbosa
    MarceloBarbosa over 7 years
    This worked like a charm. @trubs i didn't find on my report the "TargetServerVersion" as the below answer, so this answer solved my problem rather the other answer.
  • Trubs
    Trubs over 7 years
    Hi @MarceloBarbosa, this worked for me too, but, i had to repeat all the steps every time I changed the report. I've added an answer with a screenshot to show where the specific settings are (to support Amila Pradeep's answer)
  • MarceloBarbosa
    MarceloBarbosa over 7 years
    Ahh... Thank you!
  • Sedat Kumcu
    Sedat Kumcu about 7 years
    Thanks for this big idea. Works fine for my report :)
  • Brad
    Brad almost 7 years
    Ironically your image cannot be displayed.
  • VorTechS
    VorTechS almost 7 years
    This is definitely the way to go!
  • DBNull
    DBNull almost 6 years
    Bin folder...that's what I was missing.
  • Trubs
    Trubs over 5 years
    I'd guess that if the "TargetServerVersion" is not in the properties tab, it might be dependant upon the version of Visual Studio?
  • Tony Li
    Tony Li over 5 years
    this is the best solution. Thanks.
  • speedinfusion
    speedinfusion about 5 years
    Thanks this worked perfectly. Was able to open my VS 2015 reports back into VS 2013.
  • M_Idrees
    M_Idrees over 4 years
    Thanks a lot @Bruno, This fixed my problem. For WinForms application just we have to install package Microsoft.ReportingServices.ReportViewerControl.Winforms
  • LinuxDisciple
    LinuxDisciple over 4 years
    Going from 2016 to 2008 I didn't remove any of the "df" stuff (so just the other three changes) and it still worked for me.
  • toha
    toha almost 3 years
    Correct.. I follow this and working at VS 2019 to VS 2015