web-dev-qa-db-fra.com

Puis-je contrôler la version des nouveaux rapports SSDT dans Visual Studio?

J'utilise le module complémentaire Visual Studio SSDT BI pour créer des rapports pour SQL Server Reporting Services. Le projet que j'ai créé est configuré pour cibler les versions SQL Server 2008/2012/2014, car ce sont les serveurs SQL cibles que nos clients ont.

Cependant, les fichiers de rapport en cours de création dans Visual Studio semblent tous cibler SQL Server 2016. Si je copie les fichiers rdl sur un autre serveur et les télécharge via le navigateur, on me dit qu'ils proviennent d'une version plus récente de SSRS et ne peut pas être téléchargé.

Le problème est double:

  1. La balise <Report> Contient un nouvel espace de noms 2016 qui remplace celui de 2010 qui existait dans les versions précédentes:

    <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">
    
  2. Le nouveau format de fichier comprend une section de disposition des paramètres définie dans l'espace de noms 2016, mais pas dans celui de 2010:

     <ReportParametersLayout>
                .
                .
                .
     </ReportParametersLayout>
    

Si je change l'espace de noms en 2010 Et que je supprime la section ReportParametersLayout, le rapport fonctionne très bien dans SQL 2012, mais Visual Studio le remettra la prochaine fois que j'ouvrirai le rapport.

(Fait intéressant, si je déploie les rapports directement à partir de VS, je reçois un avertissement indiquant que la disposition des paramètres n'est pas prise en charge en 2012 et qu'elle est supprimée, ce qui implique que Visual Studio corrige les définitions de rapport à la volée.)

Existe-t-il un moyen de forcer VS à laisser les fichiers de rapport dans le format des versions précédentes?

18
Michael Edenfield

C'est par conception.

Voir https://connect.Microsoft.com/SQLServer/Feedback/Details/2103422

Publié par Riccardo [MSFT] le 18/12/2015 à 17:07
De par sa conception, TargetServerVersion affecte les fichiers de sortie de génération, pas les fichiers source. Vous déployez les fichiers de sortie de génération (que vous pouvez récupérer à partir du dossier\bin\Debug ou\bin\Release dans votre projet) plutôt que les fichiers source.

12
Rami A.

A eu le même problème avec la version 14.0.60305.0 de SSDT.

1) J'ai pu modifier l'attribut d'espace de noms xmls dans le <report> balise de chacun de mes rapports pour correspondre à l'environnement cible. Référence https://msdn.Microsoft.com/en-us/library/cc627465.aspx sur la façon de déterminer la version du schéma RDL du serveur cible.

2) J'ai modifié TargetServerVersion dans les pages de propriétés du projet en "SQL Server 2008 R2, 2012 ou 2014". Référence http://www.sqlskills.com/blogs/tim/issue-publishing-to-ssrs-2012-with-ssdt-2015/ pour voir comment ouvrir la page des propriétés du projet.

HTH

3
aEon'