Различные настройки приложений .NET для разработки и выпуска.
-
19-09-2019 - |
Вопрос
Я использую VS2010 C#.NET 3.5 и настройки приложения (файл Settings.settings).Что я хочу сделать, так это иметь разные настройки для моей среды разработки и производства, не засоряя мой код условными операторами, проверяющими режим отладки.Каков общий подход к этой проблеме?
Решение
Или вы можете просто создать отдельные файлы конфигурации и вызывать их:
Release.settings
Отладка.настройки
затем настройте события условной сборки, которые копируют соответствующий файл .config в Settings.Settings.
if $(ConfigurationName) == Debug xcopy debug.settings settings.settings
if $(ConfigurationName) == Release xcopy release.settings settings.settings
Другие советы
Предполагая, что вы имеете в виду значения настроек, я думаю, что лучший способ сделать это — поместить все значения производственной среды в комментарий в файле настроек.Или задавайте их только при развертывании приложения.
В .Net нет реального встроенного механизма для этого, если это то, что вам нужно.
На моей нынешней работе у нас есть небольшой инструмент командной строки, который устанавливает все значения правильно для данной среды.Конфигурация выполняется в базе данных.
На моей предыдущей работе мы никогда не копировали файл конфигурации в каталог развертывания, а при необходимости меняли файлы вручную.
Мы никогда не переопределяем файл web.config в производственных системах.Если добавляются дополнительные настройки/ключи, мы вставляем их во время публикации.
Если вы используете проекты веб-развертывания, вы можете настроить его так, чтобы различные части вашего web.config были заменены.Подробнее о них можно прочитать здесь: http://weblogs.asp.net/scottgu/archive/2005/11/06/429723.aspx.
Другой подход, который мы на самом деле используем на моей текущей работе, — это иметь несколько файлов web.config — по одному для каждой среды (например,web.config, web.config.production).Затем, когда мы собираем для развертывания, мы используем msbuild для автоматической замены web.config.production в качестве web.config.
Я думаю это отсутствие файлов xxx.config.Вот почему я использую собственный менеджер конфигурации, который можно использовать с разными конфигурациями на каждой машине, где установлено/запускается приложение.
мы используем сценарий NAnt для создания нашего решения, замены значений настроек в файле конфигурации, запуска тестов и публикации.
Это довольно просто, если вы настроили его один или два раза.
Вы можете условно включать элементы в процесс сборки, например
<ItemGroup Condition=" '$(Configuration)' == 'Debug' " ...