Запуск 2 профилей публикации одновременно?

У меня есть 2 производственных сервера, на которые мне нужно каждый раз развертывать приложение. Сейчас у меня есть 2 разных профиля публикации — по 1 для каждого сервера. Я запускаю их вручную через веб-развертывание Visual Studio 2012.

Есть ли способ автоматизировать запуск обоих профилей публикации за один шаг?


person user547794    schedule 29.04.2013    source источник


Ответы (1)


Вы пытались написать файл .bat, который развертывается из командной строки? Вы должны иметь возможность поместить оба в один файл и, таким образом, запустить оба с помощью двойного щелчка. Таким образом, файл будет выглядеть примерно так:

msbuild MySolution.sln "/p:DeployOnBuild=true;PublishProfile=DeployProduction1;Configuration=Prod;Password=pwd"

msbuild MySolution.sln "/p:DeployOnBuild=true;PublishProfile=DeployProduction2;Configuration=Prod;Password=pwd"

Помимо проб и ошибок, я использовал информацию со следующего сайта, раздел внизу помечен как «Развертывание из командной строки»: " rel="nofollow">Tiny Happy Features #3 — Публикация улучшений, связанные преобразования конфигурации и развертывание приложений ASP.NET из командной строки

person jgerman    schedule 29.04.2013
comment
Я думаю, что это может сработать, однако я не могу заставить мои преобразования web.config работать правильно. Если я публикую через командную строку, я получаю другой web.config, чем если я публикую с помощью Visual Studio. - person user547794; 29.04.2013
comment
Мне интересно, является ли часть проблемы тем, что ‹LastUsedBuildConfiguration› находится внутри файла publishProfile.User. Разве это не учитывается через MSBuild? - person user547794; 30.04.2013
comment
Мы используем MSBuild на Bamboo для публикации вместо MSBuild в командной строке, но я ожидаю, что они работают одинаково. Несколько странностей, которые я обнаружил при этом: 1) Мне пришлось заключить в двойные кавычки весь аргумент /p, иначе не все параметры действительно применялись бы 2) Мы используйте файл конкретного проекта вместо файла решения, чтобы предотвратить захват ошибочных вещей для развертывания 3) Чтобы преобразования работали правильно, нам пришлось использовать как PublishProfile, так и Configuration - person jgerman; 30.04.2013
comment
Таким образом, команда, которую я использую, выглядит так: msbuild Amp.Web.Platform.csproj "/p:DeployOnBuild=true;PublishProfile=QC_Profile;Configuration=QC;MvcBuildViews=false" И в моем файле web.config есть файлы преобразования, один из которых называется web.QC.config. - person jgerman; 30.04.2013
comment
Я отредактировал решение с двумя советами из последнего комментария. - person jgerman; 03.05.2013