Как работают файлы web.config в C#?

Допустим, в моем основном стартовом проекте есть файл web.config с некоторыми настройками:

<!-- ... -->
<appSettings>
    <add key="Setting" value="setMe!" />
</appSettings>
<!-- ... -->

Этот проект имеет две конфигурации: Release и Debug. Каждый преобразует этот параметр в свое собственное значение, например, web.Debug.config:

<!-- ... -->
<appSettings xdt:Transform="Replace">
    <add key="Setting" value="debugValue" />
</appSettings>
<!-- ... -->

Когда я его компилирую, преобразованного файла конфигурации нет. У меня всего три файла: web.config, web.Debug.config и web.Release.config.


person Ari    schedule 19.08.2013    source источник
comment
Можно еще уточнить?   -  person Raptor    schedule 19.08.2013
comment
Веб-конфигурация преобразуется только при публикации проекта. Не тогда, когда вы просто компилируете проект.   -  person Maarten    schedule 19.08.2013


Ответы (2)


Вы должны опубликовать свой проект (команда "Publish Web Site"), и ваш пункт назначения (IIS) будет использовать правильный файл web.config с вашей конфигурацией Release.

person glautrou    schedule 19.08.2013
comment
Я пытался, но похоже, что мой единственный вариант — опубликовать в Azure. - person Ari; 19.08.2013
comment
Не только для Azure, нажмите «Опубликовать веб-сайт», и вы увидите различные варианты (традиционные, как это было до того, как Microsoft создала Azure). - person glautrou; 19.08.2013

Преобразование конфигурации выполняется только при публикации. Ваш базовый файл конфигурации должен иметь ваши настройки разработки. Если вы решите использовать конфигурации сборки по умолчанию, обычно файл преобразования выпуска должен содержать параметры рабочей среды, а файл преобразования отладки — параметры тестовой среды.

Лично я обычно создаю новую конфигурацию сборки для тестирования и производства и оставляю преобразования отладки и выпуска пустыми.

person user2584307    schedule 19.08.2013