Метод (грязный трюк?), С которым я сейчас играю, состоит в том, чтобы копировать мой источник данных (.rds
) в каждый проект, закрывать Visual Studio, а затем в соответствующие файлы / папки:
- Удалить скопированные
.rds
из моих проектов отчетов (в моем проекте Data Sources
осталась только одна копия)
- В файле проекта каждого отчета (
Foo.rptproj
) измените текст элемента Project.DataSources.ProjectItem.FullPath
с My Shared Data Source.rds
на ..\Data Sources\My Shared Data Source.rds
Таким образом, все проекты отчетов ссылаются на один и тот же базовый файл в файловой системе, поэтому они используют одно определение источника данных, но каждый проект также имеет «локальный» общий источник данных, поэтому Visual Studio остается довольным.
Относительно контроля исходного кода: все еще остается только одна копия .rds
, поэтому мы не загрязняем базу кода множеством лишних дубликатов; изменения в файлах .rptproj
могут быть возвращены, поэтому мы не заставляем разработчиков заниматься неестественной гимнастикой с управлением исходным кодом (выборочные частичные коммиты и т. д.), чтобы сохранить разумную мастер-копию.
Каждый отчетный проект будет пытаться развернуть этот источник данных, хотя я запретил перезапись существующих источников данных на сервере, так что это не так уж сложно. , , и я полагаю, что если бы я намеревался перезаписать определение источника данных сервера, на самом деле не имеет значения, перезаписал ли я его один или десять раз с одним и тем же .rds
.
Отказ от ответственности: это все еще эксперимент. У меня пока нет опыта применения этой техники на практике, поэтому я не могу пойти так далеко, чтобы действительно рекомендовать ее.