Web.config Управление версиями - PullRequest
4 голосов
/ 10 сентября 2010

В настоящее время я использую модель общей базы данных для нашей разработки. Я знаю, что лучше использовать локальные базы данных разработки для правильного управления версиями базы данных без того, чтобы один разработчик нарушал код всех остальных. Вот к чему я пытаюсь добраться. У меня есть вопрос о файле web.config. Как я могу гарантировать, что, когда у каждого разработчика есть своя собственная локальная база данных разработки, ему не нужно вручную изменять строку подключения к БД каждый раз, когда он получает обновление из системы контроля версий? Какой лучший способ сделать это?

Например, скажем, Джонни Дев фиксирует свой web.config, который содержит строку подключения, например:

server=JohnnysBox;database=JohnnyAppDev1;

Итак, теперь Сьюзи Дев получает обновление, и ей нужно изменить строку подключения следующим образом:

server=SUE;database=development;

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

Каков наилучший способ справиться с этой ситуацией, чтобы разработчики не путали настройки строки подключения друг друга, но могли при необходимости вносить изменения в конфигурационный файл других типов во всех других разработчиков при необходимости (например, в новую настройку приложения)?

Ответы [ 8 ]

3 голосов
/ 10 сентября 2010

Это только частичное решение, но вы можете попросить всех разработчиков создать псевдоним для своего собственного SQL-сервера, используя cliconfg.

Тогда web.config в управлении исходным кодом будет иметь, например:

server=LocalServerAlias;database=development
2 голосов
/ 10 сентября 2010

Для файлов конфигурации или настроек вам необходима версия:

  • файлы шаблонов (server=@USER_NAME@;database=@DATABASE_NAME@;)
  • один или несколько файлов значений
  • один скрипт, способный заменить переменные на правильные значения
1 голос
/ 10 сентября 2010

Разветвляем web.config.Итак, у меня есть файл Mattweb.config, и я могу изменить его по своему усмотрению, и он заменяет web.config ТОЛЬКО НА МОЙ МЕСТНОЙ МАШИНЕ содержимым Mattweb.config.Это не требует моего вмешательства.

Мы также разветвляем «настоящий» web.config, чтобы я мог сравнить его с моей локальной версией, чтобы увидеть, были ли добавлены какие-либо настройки приложений или какие-либо другие типы изменений.Затем я просто обновляю свой файл Mattweb.config, и все снова хорошо.

1 голос
/ 10 сентября 2010

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

http://msdn.microsoft.com/en-us/library/dd465326(VS.100).aspx

После этого исключите этот пользовательский файл Web.xxx.config из своего хранилища.

1 голос
/ 10 сентября 2010

Решение, которое мы нашли в моем офисе, заключалось в том, что мы специально исключили web.config из контроля версий, но только в папке www.Это позволяет разработчикам вносить любые необходимые изменения локально.

В отдельной папке у нас есть «основная» копия файла web.config, который контролируется версией .По мере добавления новых разделов, ключей и т. Д. Разработчик обязан обновить мастер-копию.

1 голос
/ 10 сентября 2010

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

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

1 голос
/ 10 сентября 2010

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

0 голосов
/ 10 сентября 2010

Используйте (локально) в качестве имени сервера sql, и оно всегда относится к локальному серверу. Это должно быть значение по умолчанию в файле web.config, который вы проверяете в системе контроля версий.

Для производственных "установок" ваш установщик должен спросить пользователя, хотят ли они использовать удаленный сервер sql, и, если это так, обновить файлы web.config как часть процесса установки.

...