Recently I helped a client update an ASP.NET web site project from ReportViewer 2005 to ReportViewer 2017. This post documents a few issues that I encountered during the process:
Unknown Report Version: 9.0
Opening a ReportViewer 2005 RDLC file in the Microsoft RDLC Report Designer for Visual Studio produces the prompt “Do you want to convert this report to the latest RDLC format?” After clicking OK, everything appears to work, except that saving the report displays “Unknown Report Version: 9.0” an error dialog box. This issue can be worked around by first saving the RDLC files using an intermediate version of ReportViewer. I tested Visual Studio Community 2015 with SQL Server Data Tools (SSDT) version 17.4 (build 14.0.61712.050), 17.2 (build 14.0.61707.300), and from the VS2015 Installer (build 14.0.60519.0). All versions worked. Visual Studio Community 2013 with either SSDT or SSDT-BI should also work, although I did not test it.
Incorrect <Style>
Conversion
After completing the above procedure and saving the RDLC files, <Style>
elements inside <Body>
are incorrectly applied to the <Page>
element. To
correct the problem, simply edit the RDLC files with a text or XML editor and
swap the empty <Style />
in <Body>
with the non-empty one in <Page>
.
Error Installing NuGet Package
Attempting to install the
Microsoft.ReportingServices.ReportViewerControl.WebForms
NuGet package
(according to the Getting
Started
directions) results in the following error:
Install-Package : An error occurred while applying transformation to 'web.config' in project 'webdb' No element in the source document matches
'/configuration/system.web'
No element in the source document matches '/configuration/system.web'
At line:1 char:1
+ Install-Package Microsoft.ReportingServices.ReportViewerControl.WebFo ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Install-Package], Exception
+ FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand
This problem was due to the presence of
xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"
on the root
<configuration>
element in web.config
. This namespace was conventional
in the past, but is no longer expected (nor supported, apparently). After
removing xmlns
from <configuration>
in web.config
, the NuGet package
installed without error.
Compiler: The Report Definition Is Not Valid
Compiling the project produced the following 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.
This was due to my own mistake of not correctly updating the <buildProvider>
to Version=15.0.0.0
. I mention it here in case it helps anyone else who
makes the same mistake.
Best of luck with your upgrade!