Una técnica (¿truco sucio?) con la que estoy jugando ahora es copiar mi fuente de datos (.rds
) en cada proyecto, cierre Visual Studio, luego en los archivos/carpetas subyacentes:
- Elimine el
.rds
copiado de mis proyectos de informes (dejando solo una copia en misData Sources
proyecto) - En el archivo de proyecto de cada proyecto de informe (
Foo.rptproj
), cambie el texto delProject.DataSources.ProjectItem.FullPath
elemento deMy Shared Data Source.rds
a..\Data Sources\My Shared Data Source.rds
De esta forma, todos los proyectos de informes hacen referencia al mismo archivo subyacente en el sistema de archivos, por lo que comparten una única definición de fuente de datos, pero cada proyecto también tiene una fuente de datos compartida "local", por lo que Visual Studio se mantiene feliz.
Con respecto al control de fuente:todavía hay solo una copia de .rds
registrado, por lo que no estamos contaminando la base del código con muchos duplicados repulsivos; los cambios en .rptproj
los archivos se pueden registrar, por lo que no estamos obligando a los desarrolladores a hacer gimnasia de control de fuente antinatural (confirmaciones parciales selectivas, etc.) para mantener una copia maestra sana.
Cada proyecto de informes intentará implementar esta fuente de datos, aunque he prohibido sobrescribir las fuentes de datos existentes en el servidor, por lo que no es gran cosa. . . y supongo que si tuviera la intención de sobrescribir la definición de la fuente de datos del servidor, realmente no importaría si la sobrescribí una o diez veces con el mismo .rds
.
Descargo de responsabilidad:esto sigue siendo un experimento. Todavía no tengo experiencia en el uso de esta técnica en la práctica, por lo que no puedo ir tan lejos como para recomendarla.