Мое предпочтение заключается в том, чтобы не проверять файлы конфигурации проекта в исходном элементе управления, а вместо этого сохранять содержимое переменных среды и других параметров конфигурации в общей папке (в исходном управлении). Конфигурационные файлы затем генерируются как часть сценариев локальной сборки, автоматизации сборки или развертывания в зависимости от того, какой конкретный проект, решение, среда может понадобиться в данный момент времени. Это можно сделать с помощью простых текстовых файлов, xml-шаблонов или чего-то более сложного, такого как механизм искрового просмотра, в зависимости от ваших потребностей. Вы также можете сделать это по соглашению, если шаблоны сложнее, чем вам нужно (и это обычно так). Таким образом, независимо от того, где вы развертываете код, вы можете определить конфигурацию, специфичную для среды.
Примером соглашения является определение пользовательских разделов конфигурации в ваших основных файлах конфигурации (веб-конфиг, конфиг приложения и т. Д.). Затем вы можете сохранить файл connection-strings-development.config, connection-strings-integration.config, connection-strings-testing.config, connection-strings-pre-production.config и строку-соединения. config в вашем основном источнике (или общей папке). После этого процесс сборки затем удалит соответствующий файл конфигурации строки string, переименовав его в просто connection-strings.config.
При создании по шаблону у вас также будут настраиваемые разделы конфигурации с одинаковыми конфигурационными файлами, но вместо переименования при развертывании вы можете просто переписать раздел базового конфигурационного файла непосредственно с соответствующим именем файла конфигурации.
Сохранение ваших конфигурационных файлов, размещенных в среде, но обеспечивающих вам большую гибкость, особенно после того, как вы начнете управлять многими сайтами, которые используют тот же или похожий стиль конфигурации. Несмотря на это, ваша конфигурация должна быть продиктована некоторыми аспектами вашей автоматизированной среды!
А, это имеет смысл. Мне также нравится, что у вас нет связи между ветвью и конкретной средой развертывания. Спасибо за информацию! – Luke