SSRS report definition is newer than Server
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)
- 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.
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.
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.
-
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.
- Remove the "ReportParametersLayout" block.
Note: If I removed ReportSections block, it did not work as others have noted.
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, 2020Comments
-
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 over 7 yearsThis 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 over 7 yearsHi @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 over 7 yearsAhh... Thank you!
-
Sedat Kumcu about 7 yearsThanks for this big idea. Works fine for my report :)
-
Brad almost 7 yearsIronically your image cannot be displayed.
-
VorTechS almost 7 yearsThis is definitely the way to go!
-
DBNull almost 6 yearsBin folder...that's what I was missing.
-
Trubs over 5 yearsI'd guess that if the "TargetServerVersion" is not in the properties tab, it might be dependant upon the version of Visual Studio?
-
Tony Li over 5 yearsthis is the best solution. Thanks.
-
speedinfusion about 5 yearsThanks this worked perfectly. Was able to open my VS 2015 reports back into VS 2013.
-
M_Idrees over 4 yearsThanks a lot @Bruno, This fixed my problem. For WinForms application just we have to install package Microsoft.ReportingServices.ReportViewerControl.Winforms
-
LinuxDisciple over 4 yearsGoing 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 almost 3 yearsCorrect.. I follow this and working at VS 2019 to VS 2015