Различные настройки приложений .NET для разработки и выпуска.

StackOverflow https://stackoverflow.com/questions/2432580

  •  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' " ...

видеть https://stackoverflow.com/a/2093289/254109

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top