Una tecnica (sporco trucco?) con cui sto giocando ora è copiare la mia origine dati (.rds
) in ogni progetto, chiudi Visual Studio, quindi nei file/cartelle sottostanti:
- Elimina il
.rds
copiato dai miei progetti di report (lasciando solo una copia nelle mieData Sources
progetto) - Nel file di progetto di ogni progetto di report (
Foo.rptproj
), cambia il testo delProject.DataSources.ProjectItem.FullPath
elemento daMy Shared Data Source.rds
a..\Data Sources\My Shared Data Source.rds
In questo modo tutti i progetti di reporting fanno riferimento allo stesso file sottostante nel filesystem, quindi condividono un'unica definizione di origine dati, ma ogni progetto ha anche un'origine dati condivisa "locale", quindi Visual Studio è soddisfatto.
Per quanto riguarda il controllo del codice sorgente:esiste ancora una sola copia di .rds
registrato, quindi non stiamo inquinando la base di codice con molti duplicati disgustosi; le modifiche al .rptproj
i file possono essere archiviati, quindi non stiamo costringendo gli sviluppatori a una ginnastica innaturale per il controllo del codice sorgente (commit parziali selettivi, ecc.) per mantenere una sana copia master.
Ogni progetto di reporting proverà a distribuire questa origine dati, anche se ho vietato la sovrascrittura delle origini dati esistenti sul server, quindi non è un grosso problema. . . e suppongo che se intendessi sovrascrivere la definizione dell'origine dati del server, non importerebbe se l'ho sovrascritta una o dieci volte con lo stesso .rds
.
Disclaimer:questo è ancora un esperimento. Non ho ancora esperienza nell'utilizzo di questa tecnica nella pratica, quindi non posso arrivare a consigliarla effettivamente.