Различные настройки конфигурации для разработчика для библиотеки классов c # - PullRequest
6 голосов
/ 04 июня 2010

Мы небольшая команда, работающая над веб-проектом asp.net, а также над службой, причем оба проекта зависят от общей библиотеки классов.

Мы бы хотели, чтобы настройки библиотеки классов были разными для каждого разработчика (и позже для производства). В настройках указана конфиденциальная информация, такая как пароли, а также имена хостов.

Как мы должны назначить эти настройки?

Если я не ошибаюсь, настройки web.config / application недостаточно хороши, так как они не работают для общей библиотеки классов.

ps: Кроме того, некоторые переменные должны быть статически связаны, а остальные (например, строки подключения) должны быть динамическими.

1 Ответ

2 голосов
/ 04 июня 2010

Файлы web.config app.config читаются с любого сайта / приложения, которое вы используете. Т.е., любые файлы настроек приложения в библиотеке классов не используются. например любые ссылки на ConfigurationManager.ConnectionStrings ConfigurationManager.AppSettings в вашей библиотеке классов будут использовать какой-либо web.config / app.config, определенный в приложении, которое использует библиотеку классов, а не любой .config, который вы можете настроить в самой библиотеке классов.

Самый простой способ управления различными настройками для каждого разработчика и для производства - сохранить конфигурацию в другом файле, например

<appSettings configSource="Web.appSettings.dev.config"/>

У каждого разработчика есть собственный Web.appSettings.dev.config, который не находится в управлении исходным кодом. Когда в производстве вы просто измените на:

<appSettings configSource="Web.appSettings.live.config"/>

Вам просто нужно убедиться, что у вас есть какой-то шаблон Web.appSettings.template.config в svn, который является главным, но не имеет каких-либо настроек, и вручную управлять проверкой добавления любых новых ключей или строк подключения. к шаблону также добавляется каждый файл разработки и производственный файл.

...