Несколько разработчиков используют один файл web.config с разными настройками - PullRequest
13 голосов
/ 01 декабря 2011

Я создаю веб-приложение ASP.Net MVC.В команде есть несколько разработчиков, которым нужны разные настройки в файле web.config.Эти настройки предназначены для подключения к базе данных и локальной виртуальной машины Linux, к которой необходимо получить доступ.Есть и другие вещи, которые нам нужно будет добавить в будущем.Какую методологию можно использовать, чтобы каждый разработчик имел свои собственные пользовательские настройки в файле web.config, не опасаясь, что их локальные настройки будут переданы в систему контроля версий?

Конфигурации развертывания не будут работать, поскольку онизапускаем сайт через локальный веб-сервер разработки VS.Мы будем использовать конфигурации развертывания для развертывания на разных этапах в нашей среде.

Ответы [ 2 ]

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

В большинстве разделов XML-файла конфигурации можно использовать атрибут configSource . Мы использовали этот атрибут, чтобы поместить обычно измененные разделы в отдельный файл. Каждый из этих обычно изменяемых разделов будет иметь отдельные файлы * .dev.config и * .prd.config. Файлы * .dev.config были проигнорированы системой контроля версий (git).

После этого при производственном развертывании атрибут configSource будет использовать файлы * .prd.config. Опять же, это означает, что вам необходимо поддерживать два набора конфигурации в актуальном состоянии. Я начал работать над решением, позволяющим синхронизировать файлы * .prd.config и * .dev.config на уровне элементов, но у меня просто не было времени его завершить.

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

Я не уверен, является ли это наиболее высокотехнологичным решением, но я просто называю свой web.config "web.config.sample" и добавляю web.config в svn: ignore.Это мешает разработчикам случайно зарегистрировать его.

Когда новый ключ добавляется в web.config, вам просто нужно помнить, чтобы дублировать его в web.config.sample.

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

Редактировать: Вы также можете установить хук перед фиксациейчтобы убедиться, что никто не зарегистрировал файл web.config в каталоге, который также содержит файл web.config.sample.

Редактировать # 2: Вы также можете установить хук после фиксации, который будет отправлять всем по электронной почтеучаствует, когда обновляется web.config.sample, поэтому их приложения не перестают работать, когда ищут недостающие ключи конфигурации.Я собираюсь сделать это в будущем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...