SSRS报告定义比服务器更新

M K*_* II 24 sql-server reporting-services ssrs-2012

我在Visual Studio 2015中创建了一些包含所有最新更新的报告.但是,当我尝试部署报告时,我收到以下消息:

此版本的Reporting Services无效或支持此报告的定义.
11:40:28错误
报表定义可能是使用更高版本的Reporting Services创建的,或者包含的内容不是
11:40:28错误
格式正确或基于Reporting Services架构无效.详细信息:报表定义具有无效目标
11:40:28错误
名称空间' http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition '无法升级.

.rdl文件的第一行设置如下:

<?xml version="1.0" encoding="utf-8"?>
<Report MustUnderstand="df" 
xmlns="http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition" 
xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner" 
xmlns:df="http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition/defaultfontfamily">
Run Code Online (Sandbox Code Playgroud)

我可以更改架构定义吗?如果是这样,到底是什么?我尝试过将2016年改为2014年或2012年,但都没有奏效.

我可以去看看有效的定义吗?

bit*_*ine 55

我实际上遇到了类似的问题,我需要进行的更改导致2016年出现"未记录的错误/无效的RDL结构"错误,因此我编辑了RDL文件,以便我可以在早期版本中打开它并进行更改.不是很难,但你需要做一些标签编辑.

对于新报告,您可能只使用旧版本,但对于现有报告,您可以执行此操作:(我还原到2008年)

实际上写了一些超级代码来做这个作为博客文章的一部分,但手动编辑很简单.

  • 这就像一个魅力。@trubs我在报告中未找到“ TargetServerVersion”作为以下答案,因此此答案解决了我的问题,而不是另一个答案。 (2认同)
  • 谢谢这个大主意。我的报告工作正常:) (2认同)
  • 那是一个很好的解决方案!你救了我!谢谢! (2认同)

Tru*_*ubs 23

下面的设置应设置为SSRS的特定版本,然后从\ bin目录中获取RDL

或者,在更新TargetServerVersion之后,只需使用rdl right click | deploy.

接受的答案明显更难/容易出错/不可能跨多个版本的ssrs工作,并且每次更改rdl时都需要应用.

在此输入图像描述

  • 啊……谢谢! (2认同)
  • 具有讽刺意味的是,您的图像无法显示 (2认同)
  • 这是最好的解决方案。谢谢。 (2认同)

S N*_*ash 8

切换到 VS2017 并安装 Report Designer 版本 14.2 时,我遇到了同样的问题。

对我来说,解决问题只需要 3 个步骤。

1:设置更改xmlns为“ http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition

2:删除ReportSections“和” ReportSection“(仅标签)。

3:删除报告ReportParametersLayout部分。

您唯一需要记住的是将 xmlns 指向 2008/01

更改为 2008/01 并尝试运行报告后,在错误消息中可以看到其他 2 个步骤。


小智 6

我最近也遇到了这个问题。我发现我只需要更改所涉及的.rdl文件中的两项。

  1. 更改自:

    报告xmlns =“ http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition” xmlns:rd =“ http://schemas.microsoft.com/SQLServer/reporting/reportdesigner”

    至:

    报告xmlns:rd =“ http://schemas.microsoft.com/SQLServer/reporting/reportdesigner” xmlns:cl =“ http://schemas.microsoft.com/sqlserver/reporting/2010/01/componentdefinition” xmlns =“ http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition“

与其他响应不同,我需要2010而不是2008。我将检查您已部署的.rdl文件。

  1. 删除“ ReportParametersLayout”块。

注意:如果我删除了ReportSections块,则它无法像其他人所指出的那样起作用。


Ami*_*eep 5

我遇到了同样的问题,这就是我解决它的方法,

  1. 将报表项目属性上的“TargetServerVersion”属性设置为旧版本的报表服务器。
  2. 构建项目。
  3. 获取 bin 文件夹中的报告并将其部署到旧报告服务器。

您的源报告格式和命名空间将更新到最新版本。但是 bin 文件夹报告将被构建为与目标报告服务器版本兼容。

  • 这绝对是必经之路! (2认同)

小智 5

如果您在使用 LocalReport (RDLC) 的 Visual Studo 2017 C# 桌面应用程序中遇到问题,请参阅以下答案:

/sf/answers/3160464191/