В Visual Studio 2010 и более поздних версиях у вас теперь есть возможность применить преобразование к вашему web.config в зависимости от конфигурации сборки.
При создании файла web.config вы можете развернуть файл в обозревателе решений и увидите два файла:
- Web.Debug.Config
- Web.Release.Config
Они содержат код преобразования, который можно использовать для
- Изменить строку подключения
- Удалить трассировку отладки и настройки
- Зарегистрируйте страницы ошибок
Дополнительные сведения см. В разделе Синтаксис преобразования Web.config для развертывания проекта веб-приложения на MSDN.
Также возможно, хотя официально и не поддерживается, применить такой же тип преобразования к app.config
файлу, не являющемуся веб-приложением . См. Блог Фила Болдука о том, как изменить файл проекта, чтобы добавить новое задание в msbuild.
Это длинный выдержанный запрос на Visual Studio Uservoice .
Доступно расширение для Visual Studio 2010 и выше « SlowCheetah », позволяющее создавать преобразования для любого файла конфигурации. Начиная с Visual Studio 2017.3, SlowCheetah был интегрирован в IDE, а база кода находится под управлением Microsoft. Эта новая версия также поддерживает преобразование JSON.
Web.Debug.Config
иWeb.Release.Config
, вам может потребоваться щелкнуть правой кнопкой мышиWeb.Config
и щелкнутьAdd Config Transforms
.<appSettings>
Тег в web.config поддерживает атрибут файла , который будет загружать внешний конфиг с его собственным набором ключевых / значений. Они переопределят любые настройки, которые есть в вашем файле web.config, или добавят к ним.Мы используем это, изменяя наш web.config во время установки с помощью атрибута файла, который соответствует среде, в которую устанавливается сайт. Мы делаем это с помощью нашего установщика.
например;
Примечание:
источник
restartOnExternalChanges
который будет обрабатывать эти файлы, как если бы они были web.configs. Источник: learnable.com/books/…Вы смотрели на проекты веб-развертывания?
http://www.microsoft.com/downloads/details.aspx?FamilyId=0AA30AE8-C73B-4BDD-BB1B-FE697256C459&displaylang=en
Также есть версия для VS2005, если вы не на 2008.
источник
Я тоже хотел бы знать. Это помогает изолировать проблему для меня
Затем я сохраняю connectionStrings.config, а также "{host} connectionStrings.config". Это все еще проблема, но если вы сделаете это для разделов, которые различаются в двух средах, вы можете развернуть и установить версию того же web.config.
(И я не использую VS, кстати.)
источник
Я использую скрипт сборки NAnt для развертывания в разных средах. Он изменяет мои файлы конфигурации через XPath в зависимости от того, где они развернуты, а затем автоматически помещает их в эту среду с помощью Beyond Compare .
Установка занимает минуту или две, но вам нужно сделать это только один раз. Тогда пакетные файлы вступают во владение, в то время как я иду, чтобы получить другую чашку кофе. :)
Вот статья, которую я нашел на ней.
источник
В одном проекте, где у нас было 4 среды (разработка, тестирование, подготовка и производство), мы разработали систему, в которой приложение выбирало соответствующую конфигурацию на основе имени компьютера, на котором оно было развернуто.
Это сработало для нас, потому что:
В данном случае это хорошо сработало, но, вероятно, не сработало бы везде.
источник
Редактор конфигурации Enterprise Library может помочь вам в этом. Это позволяет вам создать базовый конфигурационный файл и затем дельты для каждой среды. Затем вы можете объединить базовую конфигурацию и дельту для создания специфичного для среды web.config. Взгляните на ту информацию здесь , который довезет вас через это лучше , чем я могу.
источник
Вы также можете сделать это после сборки. Установите новую конфигурацию «Развертывание» в дополнение к «Отладке и выпуску», а затем скопируйте на шаг после сборки правильный файл web.config.
Мы используем автоматические сборки для всех наших проектов, и вместе с ними скрипт сборки обновляет файл web.config, чтобы указать правильное местоположение. Но это не поможет вам, если вы делаете все из VS.
источник
Это одно из огромных преимуществ использования machine.config. На моей последней работе у нас были среды разработки, тестирования и производства. Мы могли бы использовать machine.config для таких вещей, как строки подключения (к соответствующей машине dev / test / prod SQL).
Это может не быть решением для вас, если у вас нет доступа к реальной рабочей машине (например, если вы использовали хостинговую компанию на общем хосте).
источник
Вы также можете использовать расширение «Преобразование конфигурации» работает так же, как «SlowCheetah»,
источник