Uma técnica (truque sujo?) com a qual estou brincando agora é copiar minha fonte de dados (
.rds
) em cada projeto, feche o Visual Studio e, em seguida, nos arquivos/pastas subjacentes:- Excluir os
.rds
copiados dos meus projetos de relatório (deixando apenas uma cópia em minhasData Sources
projeto) - No arquivo de projeto de cada projeto de relatório (
Foo.rptproj
), altere o texto doProject.DataSources.ProjectItem.FullPath
elemento deMy Shared Data Source.rds
para..\Data Sources\My Shared Data Source.rds
Dessa forma, todos os projetos de relatório fazem referência ao mesmo arquivo subjacente no sistema de arquivos, de modo que compartilham uma única definição de fonte de dados, mas cada projeto também tem uma fonte de dados compartilhada "local", para que o Visual Studio seja mantido feliz.
Em relação ao controle de origem:ainda há apenas uma cópia do
.rds
check-in, então não estamos poluindo a base de código com muitas duplicatas nojentas; as mudanças no .rptproj
arquivos podem ser verificados, então não estamos forçando os desenvolvedores a uma ginástica não natural de controle de fonte (commits parciais seletivos etc.) para manter uma cópia mestre sã. Cada projeto de relatório tentará implantar essa fonte de dados, embora eu tenha proibido a substituição de fontes de dados existentes no servidor, portanto, não é um grande problema . . . e suponho que se eu pretendesse substituir a definição da fonte de dados do servidor, não importaria se eu a substituísse uma ou dez vezes com o mesmo
.rds
. Isenção de responsabilidade:isso ainda é um experimento. Ainda não tenho experiência em usar essa técnica na prática, então não posso ir tão longe a ponto de realmente recomendá-la.