Я использую надстройку Visual Studio SSDT BI для создания отчетов для служб отчетов SQL Server. Созданный мной проект настроен на таргетинг на версии SQL Server 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 оставить файлы отчетов в формате предыдущих версий?