Я знаю, что есть много вопросов, подобных этому, на SO, но я пока не нашел хорошего решения.Лучшие решения, которые я видел, являются доморощенными, но прежде чем приступить к реализации специального инструмента, я хотел бы услышать ваше мнение.Итак, начнем:
У меня есть решение .NET с парой веб-приложений и несколькими службами Windows.Я хочу автоматизировать развертывание этих приложений, скажем, на 10-20 различных серверах, но файлы app / web.config на каждом сервере могут иметь разные значения.
Microsoft ответит на этот вопросиметь 10-20 различных файлов web.config локально на компьютере разработчика, а затем с помощью диспетчера конфигурации выбрать правильный.Но этого недостаточно, потому что разработчики не знают ни о настройках рабочего сервера, ни о них!
Идеальным решением было бы включение какой-либо "модели развертывания"где определены рабочие серверы и их настройки, и которые можно использовать с некоторым сценарием развертывания (может быть Powershell
) в качестве шага на сервере сборки (я использую TeamCity
).Это можно сделать, заменив параметры конфигурации перед XCopying решения на удаленном сервере.Но это утомительная и трудоемкая задача.
Другим решением может быть использование «configSource» для указания на папку с фиксированным именем, но проблема здесь в том, что некоторые части файлов конфигурации (например, serviceModel)) нельзя использовать с configSource.
Так что я не нашел лучшего ответа на этот вопрос.Есть идеи?