2016-03-17 8 views
16

Sto utilizzando il componente aggiuntivo BI Visual Studio SSDT per creare report per SQL Server Reporting Services. Il progetto che ho creato è configurato per il targeting delle versioni di SQL Server 2008/2012/2014, poiché questi sono i server SQL di destinazione dei nostri clienti.Posso controllare la versione dei nuovi rapporti SSDT in Visual Studio?

Tuttavia, i file di report creati in Visual Studio sembrano essere destinati a SQL Server 2016. Se copio i file rdl in un altro server e li carichi tramite il browser, mi viene detto che provengono da una versione più recente di SSRS e non può essere caricato.

Il problema è duplice:

  1. Il tag <Report> contiene un nuovo 2016 spazio dei nomi che sostituisce il 2010 quella che esisteva nelle versioni precedenti:

    <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. Il nuovo formato di file include un sezione di layout dei parametri definita nello spazio dei nomi 2016, ma non in quella del 2010:

    <ReportParametersLayout> 
          . 
          . 
          . 
    </ReportParametersLayout> 
    

Se cambio lo spazio dei nomi di nuovo a 2010 e rimuovere la sezione ReportParametersLayout, il rapporto funziona bene in SQL 2012, ma Visual Studio metterà indietro la prossima volta che apro il rapporto.

(È interessante notare che, se schiero i rapporti direttamente da VS, ottengo un avvertimento che il layout del parametro non è supportato nel 2012 e di essere rimosso, il che implica che Visual Studio sta riparando le definizioni dei report al volo.)

Esiste un modo per forzare VS a lasciare i file di report nel formato delle versioni precedenti?

+1

Qualcuno ha trovato una soluzione per questo? Il commento di Rami. A non affronta il problema reale. –

+0

In SSDT 16.3 (Numero build: 14.0.60812.0) hanno detto: "Risolto un problema che generava report non validi per SQL Server 2008 R2, 2012 e 2014." Qualcuno sa se questo ha risolto il problema? – Ulli

risposta

12

Questo è di progettazione.

Vedi https://connect.microsoft.com/SQLServer/Feedback/Details/2103422

Pubblicato da Riccardo [MSFT] il 2015/12/18 alle 05:07
In base alla progettazione, TargetServerVersion colpisce costruire file di output, non file di origine. Si distribuiscono i file di output di build (che è possibile estrarre dalla cartella \ bin \ Debug o \ bin \ Release all'interno del progetto) anziché dai file di origine.

+0

perché ha risolto il mio problema. Specifico la versione di destinazione, costruisci e ottieni i rapporti dal raccoglitore che funziona con quella versione. –

+0

Per chiarire ulteriormente la risposta, l'origine .RDL distribuita sul server di destinazione potrebbe differire dall'origine .RDL che si vede durante lo sviluppo del report. A seconda delle impostazioni di TargetServerVersion, Visual Studio riscrive i file .RDL nella cartella \ bin \ XXX e genererà anche avvisi di build quando vengono rilevate funzionalità di reporting non supportate (come le mappe in SSRS 2008). –

+0

Grazie. Stavo impazzendo che cambia e non mi permette di tornare indietro. –

3

Ha avuto lo stesso problema utilizzando SSDT versione 14.0.60305.0.

1) Sono stato in grado di modificare l'attributo dello spazio dei nomi xmls nel tag <report> di ciascuno dei miei report per adattarlo all'ambiente di destinazione. Riferimento https://msdn.microsoft.com/en-us/library/cc627465.aspx su come determinare la versione dello schema RDL del server di destinazione.

2) Ho modificato TargetServerVersion nelle pagine delle proprietà del progetto su "SQL Server 2008 R2, 2012 o 2014". Riferimento http://www.sqlskills.com/blogs/tim/issue-publishing-to-ssrs-2012-with-ssdt-2015/ per vedere come aprire la pagina delle proprietà del progetto.

HTH

+0

In SO c'è una regola che dice "Le risposte dovrebbero sempre fornire una risposta". Il tuo post dovrebbe essere un commento. –

+0

Grazie, Alejandro. L'ho notato e ho aggiornato la mia risposta. –

+0

Grazie per la risposta, ma ho già fatto entrambe le cose; come ho sottolineato nella mia domanda, posso * pubblicare * su un server SQL 2012 bene, ma ogni volta che modifico i file rdl per * caricarli * su un server, VS li rimanda alle versioni non funzionanti. –

Problemi correlati