Управление конфигурационными файлами и константами кода в большом проекте - PullRequest
3 голосов
/ 01 декабря 2011

Я работаю над огромной кодовой базой C # (~ 300 KLOC).Компоненты системы используют файлы конфигурации, разбросанные по иерархии папок.Значения, которые считываются из конфигурации в одном месте, хранятся в константе в другом.В разных папках есть несколько копий одной и той же конфигурации, которые копируются и регистрируются один раз, а затем никогда не обновляются.Некоторые файлы имеют 3 разные версии: одна для компьютера разработчика, одна для подготовки и другая для работающей системы.Я должен навести порядок в этом ужасном беспорядке.Как мне начать?Что такое интеллектуальная стратегия для работы с дублированными значениями в разных файлах, несколькими копиями одного и того же файла и несколькими версиями для разных сред сборки?Как я могу хранить все в одном месте, не создавая «магнит зависимости»?

Ответы [ 2 ]

3 голосов
/ 01 декабря 2011

Очистка будет болезненной;вам придется много искать / заменять по мере продвижения вперед.Я бы начал с использования того, что уже предлагает .NET, то есть поместил все эти настройки на Application.config (или Web.config, если приложение ASP.NET) и использовал ConfigurationManager.AppSettings["key"] для получения различных значений.Что касается различных сред, есть также поддержка для этого из коробки, вы можете использовать преобразования appSettings

2 голосов
/ 05 декабря 2011

Ответ на ваши молитвы - ConfigGen. Проверьте это на CodePlex: ConfigGen

Он делает именно то, что вы просите.

Обновление : Посмотрите мои примеры использования здесь: Как выбрать разные app.config для нескольких конфигураций сборки

...