【问题标题】:Is there a way to make RDLC reports made in VS 2017 compatible with VS 2015?有没有办法让 VS 2017 中制作的 RDLC 报告与 VS 2015 兼容?
【发布时间】:2018-04-28 18:43:11
【问题描述】:

我在 Visual Studio 2017 中做了一个报告,在 VS 2013 和 VS 2015 中产生错误:

错误 119 此报告的定义无效或不受支持 此版本的 Reporting Services。报告定义可能有 是使用更高版本的 Reporting Services 创建的,或者包含 基于报告的格式不正确或无效的内容 服务模式。详细信息:报告定义的目标无效 命名空间 'http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition' 无法升级。 F:\项目\赢 Applications\ERP\ERP\DiERP\bin\Debug\Reports\Inventory\Ar280.rdlc 企业资源规划系统

那么有没有办法让 VS 2017 中的报告与早期版本的 VS 兼容。

我在文本编辑器中打开了文件并进行了更改: http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition

http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition

但它在 VS 中不起作用:

加载设计器时遇到一个或多个错误。下面列出了错误。

反序列化失败:命名空间中的元素“报告” 'http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition' 命名空间中有无效的子元素“ReportSections” 'http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition'。 预期的可能元素列表:'描述、作者、自动刷新、 数据源、数据集、正文、报告参数、代码、宽度、页面、 EmbeddedImages、语言、代码模块、类、自定义属性、 变量,DeferVariableEvaluation,ConsumeContainerWhitespace, DataTransform、DataSchema、DataElementName、DataElementStyle' 在 命名空间 'http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition' 以及命名空间“##other”中的任何元素。第 115 行,位置 4。

【问题讨论】:

  • 我不确定这与 VS 的版本有关——报告中使用的架构取决于您使用的 SSRS 版本。查看报表项目的属性时,目标服务器版本是什么意思?您所针对的 SQL Server 版本是什么?
  • 什么报告项目?我只是将 *.rdlc 文件添加到 exe 项目中。而且我没有专门的报告项目,也没有在该项目的属性中找到 TargetServerVersion 的选项(我的谷歌搜索将该设置称为问题的解决方案,但我找不到它! )
  • 您的问题和标签说的是 SQL Server 附带的 SSRS,而不是 RDLC 文件的“本地报告”。我不知道是否可以将更新的 RDLC 文件降级为旧 VS,但您可以尝试在 VS 2015 中更新您的报表查看器/报表设计器。
  • 看起来这应该在 VS 2015 中完成。blogs.msdn.microsoft.com/sqlrsteamblog/2017/07/27/…
  • 你能看一下这个链接吗 访问stackoverflow.com/questions/35922626/…

标签: visual-studio-2015 visual-studio-2017 rdlc reportviewer


【解决方案1】:

许多人通过告诉人们像您一样编辑旧 RDLC 报告的标题来回答这个问题的各种排列。这是一个可怕的想法。通常,出现此问题是因为您使用的 Microsoft.ReportingServices.ReportViewerControl.WebForms dll 版本与您尝试运行报告的 Sql Server/Sql server lite 不兼容,原因如下:

  1. 正在升级 Visual Studio 版本并使用较新的报表模板和较旧的 .dll
  2. 从某人使用旧版本 .dll 开发的存储库中提取代码,并且您正在新版本的 Visual Studio 中对其进行编辑
  3. 在更高版本的 Visual Studio 中使用较新的 .dll(与您一样)创建报表并尝试使用较旧版本的 .dll 呈现它。

解决办法是通过nuget升级.dll的版本。 Visual Studio 2017 需要版本 140.xxx.xx(与 Sql Server 2016 和以前的版本兼容)在呈现报告的项目中,并确保为您的存储库做出贡献的每个人都已升级。寻找Microsoft.ReportingServices.ReportViewerControl.WebForms.140.340.80 - .dll 应该向后兼容旧版本的 sql server(但尚未测试)。

【讨论】:

  • 这帮助我弄清楚了如何在 VS 2017 中为 mvc 项目运行 rdlc。目前我只能使用 Microsoft.ReportingServices.ReportViewerControl.WebForms 版本 14 而不是版本 15。
【解决方案2】:

关注这个答案 从 RDL 2016 降级记住如果您在降级后对报告进行任何更改将再次恢复到 2016 年

https://stackoverflow.com/a/37548615/3332105

【讨论】:

    猜你喜欢
    • 2019-12-20
    • 1970-01-01
    • 1970-01-01
    • 2010-09-24
    • 1970-01-01
    • 2020-06-02
    • 2018-03-21
    • 2020-02-22
    • 1970-01-01
    相关资源
    最近更新 更多