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

时间:2016-03-17 20:34:59

标签: reporting-services visual-studio-2015 ssdt-bi

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

但是,在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>
    
  3. 如果我将命名空间更改回2010并删除ReportParametersLayout部分,则报告在SQL 2012中运行正常,但Visual Studio会在下次打开报告时将其恢复。< / p>

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

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

2 个答案:

答案 0 :(得分:12)

这是设计的。

请参阅https://connect.microsoft.com/SQLServer/Feedback/Details/2103422

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

答案 1 :(得分:3)

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

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

2)我将项目属性页面中的TargetServerVersion更改为&#34; SQL Server 2008 R2,2012或2014&#34;。参考http://www.sqlskills.com/blogs/tim/issue-publishing-to-ssrs-2012-with-ssdt-2015/以了解如何打开项目属性页面。

HTH