Изменить Web.Config для непрерывной интеграции - PullRequest
2 голосов
/ 09 марта 2010

Я использую CruiseControl.Net для процесса непрерывной интеграции. Используя ccnet, я создаю и публикую свое приложение asp.net на сервере в режиме Release. Но я не могу изменить debug = "true" на debug = "false" в моем Web.Config во время публикации. Что я могу сделать?

Ответы [ 3 ]

1 голос
/ 09 марта 2010

Вы можете рассмотреть возможность использования проекта веб-развертывания (WDP), который можно запустить как часть конфигурации сборки Visual Studio. WDP будет обрабатывать такие вещи, как переключение параметров отладки, а также изменять любые параметры web.config, зависящие от среды. Вот учебник WDP .

0 голосов
/ 13 июля 2010

Расширяя ответ Tom Brothers выше, мы используем задачу <XmlMassUpdate> в Задачах сообщества MSBuild, чтобы объединить специфичный для развертывания web.config, который содержит несколько изменений, применяемых к базе web.config для изменения параметра отладки, соединение строки, конфигурация логирования и т. д. Таким образом, веб-проект содержит web.config с конфигурацией, необходимой для запуска с машин разработки. Также есть файл web.Release.config, который содержит только те изменения, которые нам нужно применить к web.config для создания конфигурации на рабочем веб-сервере.

Поскольку дополнительный файл содержит только изменения (дельты) для применения к web.config, он не очень большой. Visual Studio игнорирует его во время разработки, а CruiseControl.Net применяет изменения к web.config при развертывании на веб-сервере.

0 голосов
/ 09 марта 2010

Если вы вызываете сценарий msbuild из ccnet, вы можете использовать задачу XmlUpdate из проекта задач сообщества MSBuild.

<XmlUpdate
    XPath="/configuration/system.web/compilation/@debug"
    XmlFileName="$(WebConfigFileFullPath)"
    Value="false" />

Я задокументировал свой процесс сборки здесь , если вам интересно.

...