我可以控制 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,无法上传。
问题是双重的:
<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 会把它放回去下次我打开报告。
(有趣的是,如果我直接从 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 文件夹中获取)而不是源文件。
我正在使用 Visual Studio SSDT BI 插件为 SQL Server Reporting Services 创建报告。我创建的项目配置为目标 SQL 服务器版本 2008/2012/2014,因为这些是我们客户拥有的目标 SQL 服务器。
但是,在 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 会把它放回去下次我打开报告。
(有趣的是,如果我直接从 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 文件夹中获取)而不是源文件。