我正在使用 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">
<ReportParametersLayout>
.
.
.
</ReportParametersLayout>
如果我将命名空间改回
2010
并删除 ReportParametersLayout
部分,报表在 SQL 2012 中运行良好,但 Visual Studio 会在我下次打开报表时将其放回原处。(有趣的是,如果我直接从 VS 部署报告,我会收到一条警告,指出参数布局在 2012 年不受支持并被删除,这意味着 Visual Studio 正在即时修复报告定义。)
有什么方法可以强制 VS 将报告文件保留为以前版本的格式?
最佳答案
这是设计使然。
见 https://connect.microsoft.com/SQLServer/Feedback/Details/2103422
Riccardo [MSFT] 于 2015 年 12 月 18 日下午 5:07 发布
按照设计,TargetServerVersion 影响构建输出文件,而不是源文件。您部署构建输出文件(可以从项目中的\bin\Debug 或\bin\Release 文件夹中获取)而不是源文件。
关于reporting-services - 我可以在 Visual Studio 中控制新 SSDT 报告的版本吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36071175/