RDLC报告在将Visual Studio 2015更改为Visual Studio 2017后停止工作。
RDLC报告在将Visual Studio 2015更改为Visual Studio 2017后停止工作。
我有一个AspNet MVC项目,它在Visual Studio 2017中开发,之前是在Visual Studio 2015中开发的。这个项目包含许多rdlc文件,在我编辑其中一个文件之前都工作正常。现在,当我尝试从编辑后的rdlc文件下载pdf时,出现以下错误:
此报表的定义在此版本的Reporting Services中无效或不受支持。报表定义可能是使用较新版本的Reporting Services创建的,或者包含的内容不够完整或不符合Reporting Services模式的要求。详细信息:报表定义具有无效的目标命名空间
'http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition',无法升级。
编辑后的rdlc文件的命名空间从http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition更改为http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition
该项目使用net framework 4.6.2运行,并安装了Microsoft.ReportViewer.Runtime.Common.12.0.2402.15和Microsoft.ReportViewer.Runtime.WebForms.12.0.2402.15 nuget包。
问题原因:在将Visual Studio 2015更改为Visual Studio 2017后,RDLC报告停止工作。
解决方法:卸载nuget包Microsoft.ReportViewer.Runtime.Common和Microsoft.ReportViewer.Runtime.WebForms,然后安装包Microsoft.ReportingServices.ReportViewerControl.WebForms.140.340.80。此外,还需要添加对System.Windows.Forms的引用,因为在使用ReportDataSource类渲染报告时存在依赖关系。
对于WPF应用程序,需要安装Microsoft.ReportingServices.ReportViewerControl.Winforms.140.340.80包。
在WebApi 2.0中,如果只使用Microsoft.ReportViewer.Runtime.Common而不是Microsoft.ReportViewer.Runtime.WebForms,该解决方案也适用。
此解决方案还要确保RDLC报告的"Build Action"属性设置为"Content",如果设置为"Embedded Resource",在发布到生产服务器时会生成错误。如果RDLC报告使用.resx文件,请验证这些文件是否存在于各自的文件夹中。
还需要安装"Microsoft.SqlServer.Types"版本14的nuget包,如果项目是dotnet并且数据库是Microsoft SQL Server。
如果找不到版本140,只有150,升级从SSRS 2005到2016时仍会出现以下错误:"The base class includes the field 'ReportViewer', but its type (Microsoft.Reporting.WebForms.ReportViewer) is not compatible with the type of control (Microsoft.Reporting.WebForms.ReportViewer)。"
这个问题的出现原因是将Visual Studio 2015升级到Visual Studio 2017后,RDLC报告停止工作。根据作者在stackoverflow上的回答,问题的解决方法如下:
在Visual Studio 2017中,RDLC报告的存储位置发生了变化。在解决此问题之前,需要确保以下几点:
1. 确保已安装Microsoft Rdlc Report Designer for Visual Studio。可以通过Visual Studio的“扩展和更新”功能来安装。
2. 确保项目的目标框架是.NET Framework 4.7或更高版本。
3. 确保项目引用了以下两个程序集:
a. Microsoft.ReportViewer.WinForms
b. Microsoft.ReportViewer.Common
如果上述步骤都已完成,但问题仍然存在,可以尝试以下解决方法:
1. 在项目中查找所有的RDLC报告文件。
2. 对于每个RDLC报告文件,右键单击并选择“属性”。
3. 在属性窗口中,将“生成操作”设置为“内容”。
4. 确保“复制到输出目录”属性设置为“如果较新则复制”。
5. 重新生成项目并运行。
这些步骤应该能够解决RDLC报告在将Visual Studio 2015更改为Visual Studio 2017后停止工作的问题。