【问题标题】:Error while uploading a report上传报告时出错
【发布时间】:2016-06-25 15:50:00
【问题描述】:

我使用 Visual Studio 2015 创建了一份报告,并通过以下链接安装了 SSDT 工具

https://msdn.microsoft.com/en-us/mt186501

数据库在 SQL Server 2014 上。报告在我的机器上工作,但是当我尝试在客户机器上上传报告时(有 SQL Server 2014 而不是 Visual Studio)。我收到以下错误

“此报表的定义无效或不受此版本的 Reporting Services 支持。报表定义可能是使用更高版本的 Reporting Services 创建的,或者包含格式不正确或无效的内容,基于Reporting Services 架构。详细信息:报表定义的目标命名空间“http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition”无效,无法升级。(rsInvalidReportDefinition)"

【问题讨论】:

标签: sql reporting sql-server-data-tools


【解决方案1】:

您的报告针对的是 SQL Server 2016

【讨论】:

  • 它适用于我的本地机器。我没有安装 sql 2016。我只有 sql 2014。当我说它有效时,我的意思是,我可以从 Visual Studio 2015 运行它。
  • 嘿 Abe - 转到项目的属性(在解决方案资源管理器中右键单击项目并选择属性) - 然后将底部的“TargetServerVersion”更改为“SQL Server 2008 R2、2012 或 2014” - 默认为 2016(尚未发布)
  • 我已将 TargetServerVersion 设置为 SQL Server 2008 R2、2012 或 2014,但是每当我在 Visual Studio 中保存时,它都会重写报告以使用 2016 命名空间!
  • 设置目标版本并构建项目后,您可以将 rdl 文件上传到输出文件夹(默认 bin/debug)。原始源 rdl 文件不会上传,只有构建的 rdl 文件。
【解决方案2】:

如果您将解决方案 > 属性 > TargetServerVersion 设置为 SQL Server 2008 R2、2012 或 2014,然后从 bin 文件夹而不是项目文件夹上传 RDL,它应该可以工作。我遇到了同样的错误并解决了它。

【讨论】:

  • 查看 bin 文件夹而不是项目文件夹是这里有用的一点
  • 构建/重建项目以使报告编辑反映在 \bin\debug 文件夹 .rdl 文件中
  • Visual Studio 2017 中的 TargetServerVersion 在哪里?
  • 我有同样的问题,在VS 2017中找不到解决方案>属性> TargetServerVersion。
  • 即使它在过去似乎对我有用,但今天我又遇到了同样的问题。所以这次帮助我的是去报告Preview,这使得所有报告都被重建。 简单的重建解决方案没有帮助...
【解决方案3】:

我从链接“https://www.sqlskills.com/blogs/tim/issue-publishing-to-ssrs-2012-with-ssdt-2015/”得到了答案

使用 SSDT 2015 将问题发布到 SSRS 2012 作者:蒂姆·拉德尼 发表于:2016 年 1 月 22 日下午 2:58 我最近正在帮助一位尝试使用 SQL Server Data Tools 2015 更新和生成将部署到 SQL Server Reporting Services 2012 的报告的客户。尝试部署报告时,客户会收到以下错误:

“[rsInvalidReportDefinition] 此报告的定义无效或不受此版本的 Reporting Services 支持。报表定义可能是使用更高版本的 Reporting Services 创建的,或者包含基于 Reporting Services 架构格式不正确或无效的内容。”

我知道 SSDT 2015 应该向后兼容并且能够与 SQL Server 产品的多个版本一起使用,因此我必须做一些研究来弄清楚究竟需要更改哪些内容才能向 SSRS 2012 发布报告.

在我的实验室中,我创建了一个名为 GetDatabases 的新项目。这个项目是一个可以查询系统表的基本报告。我在项目中尝试更改的第一件事是位于项目属性下的 TargetServerVersion。

我将 TargetServerVersion 更新为“SQL Server 2008 R2、2012 或 2014”,默认为“SQL Server 2016”。我还将 TargetServerURL 更新为运行 SSRS 2012 的开发服务器。我对发布和调试配置选项进行了这些更改。

进行这些更改后,我仍然无法部署报表。经过一番研究,我找到了更改商业智能设计器默认部署服务器版本的位置。它位于“工具和选项”下。默认设置为版本 13.0,一旦我将版本更改为 11.0 以匹配我正在部署的服务器,我就能够成功地将我的报告部署到 SSRS 2012。

enter image description here

【讨论】:

  • 我最近也遇到过这个问题。尽管如果在服务器上部署会更改目标版本,但它会失败。我编辑的方式是在选择的编辑器中打开 RDL 文件(我使用了 Notepad++)。将 XML Header 从 2015 更改为 2010。删除 Report Parameter Layout Section 和 Grid Layout 部分。删除后再次在编辑器中打开文件并检查它的消失。更改后保存文件并尝试上传 RDL 文件。希望这会有所帮助。
【解决方案4】:

虽然问题已得到解答,但此解决方案可能对新访问有所帮助。

在 Visual Studio 中,转到工具 -> 扩展和更新 -> 更新 -> 更新报告服务。

关闭 Visual Studio 后,它会安装 VSiX 安装程序。

问题已为我解决。希望这会有所帮助。

【讨论】:

  • 这帮助我在 VS 2017 中处理 rdlc
【解决方案5】:

如果您使用 Visual Studio 2017

更新:Microsoft 于 2017 年 4 月 18 日发布了一份文档,描述了如何在 Visual Studio 2017 中配置和使用报告工具。

Visual Studio 2017 的工具箱中默认没有安装 ReportViewer 工具。为 Visual Studio 安装扩展 Microsoft Rdlc 报表设计器,然后将其添加到工具箱会导致表单下方出现一个非可视组件。

Microsoft 支持告诉我这是一个错误,但截至 2017 年 4 月 21 日,它“按设计工作”。

每个需要 ReportViewer 的项目都需要遵循以下步骤。

如果工具箱中有 ReportViewer,请将其删除。突出显示,右键单击并删除。 您必须有一个打开表单的项目才能执行此操作。 如果您安装了 Microsoft Rdlc Report Designer for Visual Studio 扩展,请将其卸载。 关闭您的解决方案并重新启动 Visual Studio。这是至关重要的一步,如果在切换解决方案时没有重新启动VS,则会出现错误。 打开您的解决方案。 打开 NuGet 包管理器控制台(工具/NuGet 包管理器/包管理器控制台) 在 PM> 提示符下输入此命令,大小写很重要。

安装包 Microsoft.ReportingServices.ReportViewerControl.WinForms

您应该会看到描述包安装的文字。

我希望它能正常工作

【讨论】:

  • 谢谢你,为我工作。按照步骤添加 SqlServerTypes.Utilities.LoadNativeAssemblies(Server.MapPath("~/bin"));到 Global.asax
【解决方案6】:

那个对我有用: 收到 SSRS 版本 2016 错误,需要编辑 rdlc 报告。详细步骤请访问此链接:http://eskonr.com/2018/06/configmgr-ssrs-failed-to-upload-rdl-with-error-code-definition-of-this-report-is-not-valid-or-supported-by-this-version-of-reporting-services/

变化

  1. 搜索2016,将版本从2016改为2010
  2. 搜索 "ReportParametersLayout" 在文件中并删除整个块(这 代码是在 2016 版本的 Visual Studio 上创建的)。

如上图,移除整个区块并保存报表。

【讨论】:

    【解决方案7】:

    我右键单击我的报告,然后单击publish report1.rdlc,这对我有用。

    【讨论】:

      【解决方案8】:

      建议的解决方案都不适合我,而我在项目属性中正确设置了 TargetServerVersion。请注意,我不认为手动编辑 .rdl 文件是可持续的解决方案。

      我确实有一个奇怪的解决方案: 在 IDE(在我的例子中是 Visual Studio 2019)中,将解决方案配置从 Debug 更改为 DebugLocal。现在将 TargetServerVersion 更改为您想要的任何版本,重建报告项目并使用任何文本编辑器检查 bin\DebugLocal 文件夹中的 .rdl 文件。

      您现在会注意到,命名空间确实会对 TargetServerVersion 的每次更改做出反应并重新构建。

      注意:这似乎只在解决方案配置设置为 DebugLocal 时有效,不适用于 DebugRelease!!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-06-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多