Я боролся с этим в течение часа и не могу найти простого объяснения или, по крайней мере, какой-либо документации Microsoft, в которой говорится об этом.
Я хочу понять поведение следующих файлов:
- Web.config
- Web.Debug.config
- Web.Release.config
- Web.Staging.config (я создал это, щелкнув правой кнопкой мыши Web.config -> Добавить преобразование конфигурации)
Я добавил следующий appSetting в файл Web.config:
<configuration>
..
<appSettings>
<add key="DevDisplayPanel" value="default value" />
</appSettings>
..
</configuration>
В моем Web.Debug.config я изменил DevDisplayPanel на это:
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<appSettings>
<add key="DevDisplayPanel"
xdt:Transform="Replace"
xdt:Locator="Match(key)"
value="Debug mode" />
</appSettings>
</configuration>
Я отобразил элемент appSettings следующим образом:
ViewBag.Test = System.Configuration.ConfigurationManager.AppSettings["DevDisplayPanel"];
Я понял, что если я запущу Debug -> Start Debugging в Visual Studio, этот параметр DevDisplayPanel будет прочитан из Web.Debug.config. Я не могу найти документацию Microsoft, в которой говорится об этом.
Я попытался запустить свое веб-приложение, используя конфигурацию решения Debug, Release и Staging, но все они показывают значение DevDisplayPanel из файла Web.config.
Где вступают в игру файлы Web.Debug|Release|MyConfiguraton.config. Что я упустил, и, что самое главное, это поведение должно быть выделено жирным шрифтом где-то в документах!!