En teknik (smutsigt trick?) jag leker med nu är att kopiera min datakälla (.rds
) i varje projekt, stäng Visual Studio och sedan i de underliggande filerna/mapparna:
- Ta bort den kopierade
.rds
från mina rapportprojekt (lämnar bara en kopia i minaData Sources
projekt) - I varje rapportprojekts projektfil (
Foo.rptproj
), ändra texten iProject.DataSources.ProjectItem.FullPath
element frånMy Shared Data Source.rds
till..\Data Sources\My Shared Data Source.rds
På så sätt refererar alla rapporteringsprojekt till samma underliggande fil i filsystemet, så de delar en enda datakällasdefinition, men varje projekt har också typ en "lokal" delad datakälla, så Visual Studio hålls nöjd.
Angående källkontroll:det finns fortfarande bara en kopia av .rds
checkade in, så vi förorenar inte kodbasen med massor av otäcka dubbletter; ändringarna av .rptproj
filer kan checkas in, så vi tvingar inte utvecklare till onaturlig gymnastik för källkontroll (selektiva partiella commits etc.) för att behålla en förnuftig huvudkopia.
Varje rapporteringsprojekt kommer att försöka distribuera den här datakällan, även om jag har förbjudit överskrivning av befintliga datakällor på servern, så det är inte så stor sak . . . och jag antar att om jag hade för avsikt att skriva över serverns datakällas definition skulle det inte spela någon roll om jag skrev över den en eller tio gånger med samma .rds
.
Ansvarsfriskrivning:detta är fortfarande ett experiment. Jag har inte erfarenhet av att använda den här tekniken i praktiken ännu, så jag kan inte gå så långt som att faktiskt rekommendera den.