SSRS report definition is newer than Server

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


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


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.


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)

  • Change the Report tag:
    • Remove MustUnderstand="df"
    • Change the xmlns value to "http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition"
    • Delete the xmlns:df attribute.
  • Delete the entire "ReportParametersLayout" block.
  • Delete the "df" tag and its content.
  • Delete the "ReportSections" and "ReportSection" opening and closing tags (not the content).

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