问题
I have converted an .rdlc
rerort from SSRS 2005 to SSRS 2008. Now when I am going to build that project I have got error.
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.
Please give me solution for this.
回答1:
Just stumbled upon this question since I was having the same problem. In my case, I had a reference to an older version of ReportViewer.WinForms. When I switched versions, everything worked fine. Might not be the same case as yours, but just thought I'd chime in in case anyone else finds this page.
回答2:
I faced an almost similar problem but in another version of visual studio ( 2012) and i found out that the problem was from the version of Microsoft.ReportViewer.WebForms.dll or winforms. You may be still referencing the old one related to your current version of visual studio so check the dll version and if so remove it and add the latest one
回答3:
I encountered this same problem, and the solution for me was to edit the file:
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0
\ReportingServices\Microsoft.ReportingServices.targets
And change line #2, which previously said this:
<UsingTask TaskName="Microsoft.Reporting.RdlCompile"
AssemblyName="Microsoft.ReportViewer.Common, Version=9.0.0.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
To this:
<UsingTask TaskName="Microsoft.Reporting.RdlCompile"
AssemblyName="Microsoft.ReportViewer.WebForms, Version=10.0.0.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
Once that was done, my program started compiling again.
回答4:
I had exacty the same problem. For me the solution was to exclude the report from the project and to add it again. After that it compiled successfully.
回答5:
I'm not entirely sure why @user2702793's answer got down voted, because that suggestion just saved my career:
Consider
- Creating a blank SSRS 2008 report and copying all the content out of the SSRS 2005 report into the new one
- copy the name of the SSRS 2005 report if you want to keep the name of the report intact
- delete that report (SSRS 2005 one you just copied the content from into your new report)
- rename your new SSRS 2008 (with the deleted SSRS 2005 report's content in it) and paste the report name in.
I had a very similar situation mentioned above except I wanted to retain my SSRS old versions instead of upgrading it. Which basically had me making a copy of the old version, copying the content out of the accidentally upgraded report and pasting it into the copied report, and copying the name of the upgraded report, deleting it and renaming my copied report to retain the same name of the report that just got deleted.
Edit: Of course in my case I also wanted changes done to the old report which was all in the upgraded report hence my lengthy work around to keep from losing my current changes.
回答6:
The solution that worked for me was to run the .NET cleanup tool, I tried the .NET framework repair tool first and it did not work. I read the suggestions here
回答7:
In ReportViewer properties in webform expand LocalReport/Path in the field put the correct path of report
- This works for me...
回答8:
It might be a conversion problem. Recreate a new 2008 report. And I suggest using VS2010. I have the same problem when editing a report with VS2012.
来源:https://stackoverflow.com/questions/15675248/the-report-definition-is-not-valid