Управляйте различиями конфигурационных файлов между серверами разработки и производства с помощью SVN - PullRequest
4 голосов
/ 04 марта 2011

У меня есть несколько файлов приложения .NET, которые на рабочем сервере отличаются от сервера разработки. Например:

  • Web.config
  • MasterPage.master
  • счет / account.aspx
  • Блог / Web.config
  • и еще несколько ...

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

Я использую транк SVN для основной разработки (стабильный) и отмечаю транк, когда он будет готов к выпуску. Магистраль развертывается на моем сервере разработки, а тег выпуска развертывается на рабочем сервере через FTP.

Ответы [ 2 ]

1 голос
/ 08 марта 2011

Одна из возможностей - оставить это на усмотрение вашего процесса сборки / развертывания.

Итак, для Web.config вы должны иметь следующее в SVN: Web.config (это может быть ваша версия для разработки) Web.config.qa (если у вас есть среда qa) Web.config.prod

Во время сборки / развертывания ваш процесс развертывания «знает», в какую среду он развертывается (на основании того, как вы управляете этим - переменные среды, параметры сценария и т. Д.), И заменяет правильный файл конфигурации вместо него.

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

0 голосов
/ 04 января 2013

В Visual Studio 2010 добавлены преобразования Web.config, а в 2012 году добавлена ​​возможность выполнять преобразования для всех файлов конфигурации.Таким образом, правильные файлы конфигурации создаются при публикации в заданной среде.Вот некоторая информация относительно встроенных опций: http://msdn.microsoft.com/en-us/library/dd465326.aspx

Вы также можете использовать отличное расширение XML-преобразований SlowCheetah здесь: http://visualstudiogallery.msdn.microsoft.com/69023d00-a4f9-4a34-a6cd-7e854ba318b5

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

...