我可以控制 Visual Studio 中新 SSDT 报告的版本吗?

Can I control the version of new SSDT reports in Visual Studio?

我正在使用 Visual Studio SSDT BI 插件为 SQL Server Reporting Services 创建报告。我创建的项目配置为目标 SQL 服务器版本 2008/2012/2014,因为这些是我们客户拥有的目标 SQL 服务器。

但是,在 Visual Studio 中创建的报告文件似乎都针对 SQL Server 2016。如果我将 rdl 文件复制到另一台服务器并通过浏览器上传它们,我被告知它们来自较新版本的 SSRS,无法上传。

问题是双重的:

  1. <Report> 标签包含一个新的 2016 命名空间,它取代了之前版本中存在的 2010 命名空间:

    <Report 
      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/2016/01/reportdefinition">
    
  2. 新文件格式包括在 2016 命名空间中定义的参数布局部分,但在 2010 命名空间中没有:

     <ReportParametersLayout>
                .
                .
                .
     </ReportParametersLayout>
    

如果我将命名空间改回 2010 并删除 ReportParametersLayout 部分,报告在 SQL 2012 中工作正常,但 Visual Studio 会把它放回去下次我打开报告。

(有趣的是,如果我直接从 VS 部署报告,我会收到一条警告,指出参数布局在 2012 年不受支持并已被删除,这意味着 Visual Studio 正在即时修复报告定义.)

有没有办法强制 VS 保留以前版本格式的报告文件?

使用 SSDT 版本 14.0.60305.0 时遇到同样的问题。

1) 我能够更改每个报告的 <report> 标记中的 xmls 命名空间属性以匹配目标环境。参考 https://msdn.microsoft.com/en-us/library/cc627465.aspx 如何确定目标服务器的 RDL 架构版本。

2) 我将项目属性页面中的 TargetServerVersion 更改为 "SQL Server 2008 R2, 2012, or 2014"。参考 http://www.sqlskills.com/blogs/tim/issue-publishing-to-ssrs-2012-with-ssdt-2015/ 查看如何打开项目属性页面。

HTH

这是设计使然。

https://connect.microsoft.com/SQLServer/Feedback/Details/2103422

Riccardo [MSFT] 于 2015 年 12 月 18 日 5:07 下午
发布 按照设计,TargetServerVersion 影响构建输出文件,而不是源文件。您部署构建输出文件(您可以从项目中的 \bin\Debug 或 \bin\Release 文件夹中获取)而不是源文件。