上传报告时出错

Error while uploading a report

我使用 visual studio 2015 创建了一份报告,并安装了以下 link

的 SSDT 工具

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

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

"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. (rsInvalidReportDefinition)"

您的报告针对 SQL 服务器 2016

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

我从 link “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 服务器产品一起使用,所以我不得不做一些研究来弄清楚到底需要更改什么才能向 SSRS 2012 发布报告。

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

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

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

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

我的问题已经解决了。希望这有帮助。

如果你用过Visual studio2017

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

Visual Studio2017在工具箱中默认没有安装ReportViewer工具。安装 Visual Studio 的 Microsoft Rdlc Report Designer 扩展,然后将其添加到工具箱中会导致在表单下方显示一个非可视组件。

Microsoft 支持告诉我这是一个错误,但截至 2017 年 4 月 21 日,它是 "working as designed"。

每个需要 ReportViewer 的项目都需要执行以下步骤。

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

安装包Microsoft.ReportingServices.ReportViewerControl.WinForms

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

我希望它有效

那个对我有用: 出现 SSRS 2016 版错误,需要编辑 rdlc 报告。有关详细步骤,请访问此 link: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" 在文件中并删除整个块(这 代码是在 visual studio).
  3. 的 2016 版本上创建的

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

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

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

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

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

注意:这似乎仅在解决方案配置已设置为 DebugLocal 时有效,不适用于 Debug 发布!!