Могу ли я управлять версией новых отчетов SSDT в Visual Studio?

Я использую надстройку 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 оставить файлы отчетов в формате предыдущих версий?

Ответы

Ответ 1

Это по дизайну.

См. https://connect.microsoft.com/SQLServer/Feedback/Details/2103422

Отправленный Риккардо [MSFT] 12/18/2015 в 17:07

По дизайну TargetServerVersion влияет на выходные файлы сборки, а не на исходные файлы. Вы устанавливаете выходные файлы сборки (которые вы можете захватить из папки \bin\Debug или\bin\Release в своем проекте), а не исходные файлы.

Ответ 2

Имел ту же проблему, используя SSDT версии 14.0.60305.0.

1) Я смог изменить атрибут пространства имен xmls в теге <report> каждого из моих отчетов в соответствии с целевой средой. Ссылка https://msdn.microsoft.com/en-us/library/cc627465.aspx о том, как определить версию RDL-схемы целевого сервера.

2) Я изменил TargetServerVersion на страницах свойств проекта на "SQL Server 2008 R2, 2012 или 2014". Ссылка http://www.sqlskills.com/blogs/tim/issue-publishing-to-ssrs-2012-with-ssdt-2015/, чтобы увидеть, как открыть страницу свойств проекта.

НТН