我正在使用Visual Studio SSDT BI插件为SQL Server Reporting Services创建报告。我创建的项目配置为针对SQL Server版本2008/2012/2014,因为这些是我们客户的目标SQL Server。
但是,在Visual Studio中创建的报表文件似乎都是针对SQL Server 2016.如果我将rdl
文件复制到另一台服务器并通过浏览器上传,我被告知他们来自较新版本的SSRS且无法上传。
问题是双重的:
<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">
新文件格式包含2016名称空间中定义的参数布局部分,但不包含在2010名称空间中:
<ReportParametersLayout>
.
.
.
</ReportParametersLayout>
如果我将命名空间更改回2010
并删除ReportParametersLayout
部分,则报告在SQL 2012中运行正常,但Visual Studio会在下次打开报告时将其恢复。< / p>
(有趣的是,如果我直接从VS部署报告,我会收到警告,指出参数布局在2012年不受支持并被删除,这意味着Visual Studio正在动态修复报告定义。)
有没有办法强制VS将报告文件保留为以前的版本格式?
答案 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