VS2019使用旧版RDLC报错解决办法。The definition of this report is not valid or supported...

VS2019使用旧版RDLC报错解决办法。The definition of this report is not valid or supported by this version of Reporting Services.

问题描述:

原先的rdlc报表是在旧版VS中开发的,在使用了VS2019改动rdlc报表后,程序会直接报错。
The definition of this report is not valid or supported by this version of Reporting Services. The report definition may have been created with a later version of Reporting Services, or contain content that is not well-formed or not valid based on Reporting Services schemas. Details: The report definition has an invalid target namespace ‘http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition’ which cannot be upgraded.
在这里插入图片描述

解决方案:

在用SVN进行版本比对后发现VS2019在修改旧版RDLC报表后会大量的修改节点,新老节点混合在一起导致报表无法使用,貌似是MS没有做好兼容啊…外网也是一堆抱怨这个问题的,官方也没个解决办法只能自己各种搜索外加测试。
说说自己怎么解决的吧:
1.右击项目中的rdlc,打开方式,使用XML编辑器打开。(或者直接用记事本编辑)
2.把头部的这个2016改成2008在这里插入图片描述
3.搜索ReportSection,找到标签
在这里插入图片描述
把这两个标签都删掉,记得还有两个结束标签也要删掉。中间的东西不要动,只要删除这四个标签就行。
在这里插入图片描述
4.搜索ReportParametersLayout标签,把整个ReportParametersLayout标签及里面的所有内容全部删掉(不用担心影响传参,参数在上面那个节点里面,ReportParametersLayout是冗余的)
在这里插入图片描述
5.保存,再看下报表是不是正常显示了。
这是目前总结下来最快的方法,缺点是每次修改过rdlc报表后都要手动做这些操作,如果忘记就会GG,要么就每次手动修改,要么就安装个低版本的VS进行开发,目前只有这样了。

猜你喜欢

转载自blog.csdn.net/hangsky1990/article/details/120781662