上传报告时出错

时间:2016-03-10 16:56:30

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

我使用Visual Studio 2015创建了一个报告,其中包含从以下链接安装的SSDT Tools

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)"

8 个答案:

答案 0 :(得分:83)

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

答案 1 :(得分:4)

您的报告定位于SQL Server 2016

答案 2 :(得分:2)

如果您使用的是 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

您应该看到描述软件包安装的文本。

我希望它能正常工作

答案 3 :(得分:2)

那个为我工作的人:  收到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上创建的。

如上所示,删除整个块并保存报告。

答案 4 :(得分:0)

我从链接“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数据工具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的开发服务器。我对发布和调试配置选项进行了这些更改。

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

enter image description here

答案 5 :(得分:0)

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

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

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

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

答案 6 :(得分:0)

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

答案 7 :(得分:0)

在我正确地在项目属性中设置了 TargetServerVersion 的情况下,没有一个提议的解决方案对我有用。请注意,我认为手动编辑.rdl文件不是可持续的解决方案。

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

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

注意:这仅在解决方案配置已设置为 DebugLocal 时有效,而对于 Debug Release < / em> !!