У меня на одном Windows Server около 10 разных проектов .NET, в основном .NET 4.0, но есть и .NET 2.0.
Некоторые из этих проектов — asp.net, некоторые — фоновые утилиты/сервисы.
Эти проекты взаимодействуют с более чем сотней различных баз данных в нашей инфраструктуре. ConnectionStrings, которые они используют для этого, меняются по крайней мере несколько раз в месяц.
Проблема здесь в том, что забывание поместить ConnectionString в один из этих проектов может вызвать множество проблем, а новые проекты/обновления постоянно развертываются на сервере многими разными программистами.
Моя новая попытка решения состоит в том, чтобы переопределить класс System.ConfigurationManager во всех проектах и заменить его моей собственной реализацией, которая считывается из общего файла конфигурации, который я могу поддерживать. Затем я просто перекомпилировал каждый проект один раз и развернул его.
Я также мог бы попытаться сохранить ConnectionStrings в файле machine.config, который является общим для всех проектов, но мне пришлось бы делать это для каждой версии .NET Framework, используемой проектом, которого как минимум три, и делать ошибку в этот файл кажется опасным.
Есть ли у кого-нибудь рекомендации, как действовать дальше?
Спасибо.