Visual Studio 2008 XDT (Config Transform) при сборке
Я поддерживаю приложение webforms для нескольких разных клиентов в Visual Studio 2008. У каждого клиента есть свой отдельный файл web.config. Мы используем преобразование конфигурации при развертывании, которое прекрасно работает.
В настоящее время над этим проектом работает много разработчиков, и при разработке каждому разработчику необходимо иметь значения конфигурации для конкретного клиента. Прямо сейчас мы делаем то, что каждый из нас имеет свою собственную версию web.config локально, и мы просто стараемся не проверять файл web.config.
Этот подход, конечно, имеет несколько недостатков. Мы должны сделать это вручную, что раздражает, мы должны быть очень осторожны, чтобы не проверять конфигурационные файлы, так как это может создать проблемы для остальных разработчиков, неудобно добавлять новое значение в конфигурацию и т. Д.
Я хотел бы преобразовать файлы конфигурации при сборке из Visual Studio, чтобы мы могли выбирать, из какого файла брать значения конфигурации, без необходимости вручную редактировать web.config.
Некоторое время я искал в Интернете, но лучшее, что я нашел на данный момент, это: http://www.codeproject.com/Articles/399002/Project-Build-Web-config-transformation
Что не работает для меня, это дает мне ошибку сборки, говоря, что он не может скопировать Web.config_output, потому что файл отсутствует.
1 ответ
По умолчанию такие инструменты, как SlowCheetah и другие технологии преобразования конфигурации, используют $(Configuration)
выяснить название преобразования, которое нужно применить. Вы могли бы взять slowcheetah.targets
файл и редактировать его, чтобы принять $(username)
который подберет стандартные окна, зарегистрированные на имя пользователя, если вы строите в visual studio. Вы можете использовать условие, чтобы применить изменения, особенно когда '$(BuildingInsideVisualStudio)'='true'
,
Это потребует от вас некоторой работы с целевыми файлами MsBuild, но в конечном итоге ваши разработчики смогут проверить web.jesse.houwing.config
(в моем случае) и что в этом файле есть, их преобразование будет применено вместо стандартного выпуска или преобразования отладки.
Что касается хорошей отправной точки, посмотрите на SlowCheetah.