Веб-развертывание и *.pubxml
файлы в Visual Studio имеют опрятную функцию, которая позволяет применять преобразования XMLво время развертывания, а не только время сборки, что позволяет настраивать настройки для каждого развертывания (то есть в среде) web.config
.Как я могу явно указать преобразование XML Web.config в файле Web Deploy pubxml?
Проблема заключается в том, что трансформация происходит «по магии» - если у вас есть файл в корне вашего сайта с именем web.{profile name}.config
, то он будет применяться во время публикации, но вы не можете отключить эту функцию или (насколько я знаю может сказать), указав другой файл преобразования. Я также не вижу, как вы можете преобразовать другие файлы web.config (например, файл Views/web.config
в проект MVC) с использованием файлов pubxml
.
Я заметил, что файлы pubxml
- это только файлы MSBuild XML, поэтому ясно, что процесс развертывания - это просто вопрос выполнения этих файлов MSBuild с правильными целями, поэтому для получения требуемой функциональности мне просто нужно для изменения файла pubxml
с помощью собственных пользовательских шагов сборки.
... но как мне добавить эти шаги сборки? Какова цель расширения и события?
Я не сделал это сам, но вы должны быть в состоянии создать пакет и исключить файл web.config из него. Затем вы можете запустить преобразование самостоятельно (медленный гепард или что-то еще) и указать, что вы хотите, чтобы преобразованный файл был развернут вместе с пакетом, когда MSdeploy развертывает его. Это было бы сделано при вызове сгенерированного cmd или в ручном вызове msdeploy. В любом случае, это заканчивается тем, что нужно положить вызов в msdeploy. Я еще не сделал этого сам, но теоретически это должно быть возможно, так как вы можете явно передать дополнительные файлы для развертывания. –