1

Веб-развертывание и *.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 с помощью собственных пользовательских шагов сборки.

... но как мне добавить эти шаги сборки? Какова цель расширения и события?

+0

Я не сделал это сам, но вы должны быть в состоянии создать пакет и исключить файл web.config из него. Затем вы можете запустить преобразование самостоятельно (медленный гепард или что-то еще) и указать, что вы хотите, чтобы преобразованный файл был развернут вместе с пакетом, когда MSdeploy развертывает его. Это было бы сделано при вызове сгенерированного cmd или в ручном вызове msdeploy. В любом случае, это заканчивается тем, что нужно положить вызов в msdeploy. Я еще не сделал этого сам, но теоретически это должно быть возможно, так как вы можете явно передать дополнительные файлы для развертывания. –

ответ

0

Конфигурация Pubxml все еще происходит во время сборки, она просто предполагает, что вы будете развертываться одновременно, и вы можете соответствующим образом настроить свою конфигурацию.

Если вам нужны правильные изменения конфигурации развертывания, вы должны использовать параметризацию WebDeploy. Он гораздо более эффективен и применяется при развертывании пакета WebDeploy.

Мы используем его для более 50 продуктов развертывания в 4 различных средах (DEV, QA, MOCK, PROD) с большим успехом.

http://www.dotnetcatch.com/2014/09/08/parameterizationpreview-visual-studio-extension/

+1

Насколько я знаю, параметризация Web Deploy не позволяет использовать уровень преобразования, разрешенный XDT, и именно поэтому вы можете запустить оба в MSBuild. – Dai

+0

Мы преобразовали 50 приложений из конфигурационных преобразований в параметризацию, и найденная параметризация была более способной. – chief7