Для чего нужны файлы Web.Debug.config и Web.Release.Config? - PullRequest
105 голосов
/ 07 мая 2010

Я только что обновился до Visual Studio 2010 и MVC 2.0 и заметил, что к файлу Web.config прикреплены два дополнительных файла?Используются ли эти файлы для определения конкретных параметров отладки и выпуска, чтобы не загромождать основной файл Web.config?

Имеет ли смысл помещать строку подключения в корневой файл Web.config, еслиесть локальный и удаленный в отладке и выпуске Web.configs соответственно?

Спасибо!

Ответы [ 4 ]

93 голосов
/ 07 мая 2010

Это новая функция преобразования Web.config в Visual Studio 2010. Дополнительная информация здесь .


Редактировать:

Используются ли эти файлы для определения конкретных параметров отладки и выпуска, чтобы не загромождать основной файл web.config?

Это не ограничено тремя файлами, вы можете (теоретически) иметь столько файлов, сколько у вас есть окружений. Файл верхнего уровня Web.config предоставляет шаблон вашей веб-конфигурации. Файлы в нем предоставляют заменяющие значения, специфичные для этой среды (например, если у вас есть разные строки подключения для локального / stage / test / что угодно).

Имеет ли смысл помещать строку подключения в корневой файл web.config, если у меня есть локальная и удаленная строка в отладке и выпуске web.configs соответственно.

Это имело бы смысл только в том случае, если бы оно не изменялось между средами. Похоже, в вашем случае это так, в вашем случае нет смысла оставлять его в файле Web.config.

10 голосов
/ 19 июля 2013

Это файлы преобразований Web.config. Из Развертывание ASP.NET Web с использованием Visual Studio: преобразования файлов Web.config :

Существует два способа автоматизации процесса изменения настроек файла Web.config: преобразования Web.config и параметры Web Deploy. Файл преобразования Web.config содержит разметку XML, в которой указано, как изменить файл Web.config при его развертывании. Вы можете указать различные изменения для конкретных конфигураций сборки и для конкретных публиковать профили. Конфигурации сборки по умолчанию: Debug и Отпустите, и вы можете создавать собственные конфигурации сборки. Публикация профиль обычно соответствует среде назначения.

1 голос
/ 13 ноября 2015

На случай, если кому-то будет интересно, вот что я написал, чтобы иметь динамическую строку соединения для каждой среды. Я хотел развернуть код в любой среде (Dev, Test, Pre-Prod, Prod ...), не беспокоясь об изменении строк подключения. Я не мог найти хороший способ сделать это с Asp.Net MVC 4, поэтому я придумал свой собственный способ полагаться на файл свойств для каждой среды.

Возможно, есть лучшее решение, я пришел из Wicket / Java и недавно начал разработку с MVC 4, так что, возможно, существует лучшее решение. Но вот ссылка на мой вопрос и ответ для строки динамического соединения:

Asp.net MVC 4 строка динамического соединения

0 голосов
/ 21 декабря 2011

Это было что-то давно необходимое в VS. К сожалению, кажется, есть проблема с реализацией. Например, рассмотрим этот сценарий (VS.2010 Ultimate, все SP):

Web.Config

  • Нет секции Строки соединения
  • Полное членство пользователя / роль / и т.д. Настройка провайдера с использованием connectionStringName = "test"

Web.Release.Config

  • Нет конфигурации членства (уже указано в основном web.config)
  • раздел connectionStrings, включая CS с именем "test"

Web.Debug.Config

  • Нет конфигурации членства (уже указано в основном web.config)
  • раздел connectionStrings, включая CS с именем "test"

При выполнении приложения выдается следующая ошибка:

Не найдено имя соединения 'test' в конфигурации приложения или строка соединения пуста.

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

...