如果添加了工具箱中的参数,Microsoft Report Viewer 定义会从 2008 年更改为 2016 年

microsoft report viewer defination changes 2008 to 2016, if parameter from toolbox added

我有 vs2017 我的同事有 vs2015, 他通过 vs studio 安装程序安装了报告查看器。当他创建新的报告 (.rdlc) 文件时,我们正在处理同一个项目,他的报告架构定义 url 就像;

<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">

我的也是,但是当我从工具箱添加参数时,它神奇地变成了下面;

<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition"xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">

是的,我知道我的外部报告查看器版本与集成版不同,这一切都在背后。

如果我删除了一些我通过 post 发现的不必要的标签,它会起作用,但是如果我添加任何参数或更改现有参数的位置,2016 年的东西会随 xml元素返回。 所以我需要告诉 VS

“忘记 2016,请继续使用 2008 版本”

已编辑:他们说“你应该设置正确的目标服务器版本”。请详细说明此操作的步骤是什么以及如何执行此操作?

删除 vs 2017 并安装 vs2015 看起来像是某种解决方案,但我不想改变我的 ide 只是因为一些不必要的 xml 元素。

您需要将 TargetServerVersion 更改为 SQL Server 2008。这可以在 Visual Studio 项目的属性中的“常规”选项卡上找到。

有一个解决方法。如果您直接在 xml 中删除所有参数,您可以在报告查看器中更改它不会更新到 2016 年的任何内容。做您需要做的一切,然后直接在 xml 中添加参数作为你的最后一步。

下面是如何在 xml

中添加参数的示例
<ReportParameters>
 <ReportParameter Name="YourParamName">
  <DataType>Integer</DataType>
  <Prompt>ReportParameter1</Prompt>
 </ReportParameter>
</ReportParameters>

我遇到了同样的问题,但是我无法更改 TargetServerVersion, 我刚刚从 Nugget 安装了 Microsoft.ReportingServices.ReportViewerControl.WebForms,它解决了我的问题。 希望对你有用