Веб-развертывание через MSDeploy.exe

Я настраиваю сервер сборки CI с Jenkins. После этапов сборки я хочу развернуть сайт.

При публикации веб-сайта из VisualStudio я опубликовал его через Web Deploy. Мне нравится этот метод, потому что он фактически публикует те файлы, которые были изменены, поэтому развертывание происходит очень быстро.

Теперь на сервере сборки я пытаюсь сделать то же самое: собрать приложение (используя MSBuild.exe), а затем развернуть приложение (используя MSDeploy.exe?).

Я видел несколько сообщений, в которых они развертывают приложение с помощью MSBuild.exe, а другие с помощью MSDeploy.exe, есть ли в этом существенная разница?

Есть ли у вас какие-нибудь советы, которые могли бы помочь в этом?

Спасибо и продвинулись.


person Abraham Duran    schedule 24.03.2016    source источник


Ответы (2)


Используйте MSBuild для создания пакета MSDeploy, а затем MSDeploy.exe для развертывания этого пакета в любых средах. Эта ссылка должна помочь вам лучше понять, как работает WebDeploy / MSDeploy.

http://dotnetcatch.com/2016/02/25/the-anatomy-of-a-webdeploy-package/

Что ДЕЙСТВИТЕЛЬНО круто, вы также можете использовать MSDeploy для развертывания баз данных и не веб-приложений. С помощью этого метода мы полностью автоматизировали развертывание более 50 продуктов.

http://dotnetcatch.com/2016/02/10/deploying-a-database-project-with-msdeploy/

http://dotnetcatch.com/2016/03/18/deploy-non-web-apps-with-msdeploy/

ОБНОВЛЕНО - основные шаги по использованию пакетов MSDeploy:

  1. Создайте пакет в своей сборке, добавив /t:Package arg к вызову MSBuild
  2. Сохраните полученный пакет из каталога bin в репозиторий артефактов.
  3. Вызовите MSDeploy.exe, чтобы развернуть пакет на целевом сервере. Здесь есть много опций, но основная команда следующая:

    "c: \ Program Files (x86) \ IIS \ Microsoft Web Deploy V3 \ msdeploy.exe" -verb: sync -source: package = mypackage.zip -dest: auto, computerName = localhost

person chief7    schedule 24.03.2016
comment
Не могли бы вы обобщить информацию по ссылкам, чтобы ваш ответ был полным? - person Ryan Gates; 02.03.2017
comment
Добавил еще несколько деталей. - person chief7; 03.03.2017

Еще проще, используя текущую Visual Studio и dotnet, создайте свой профиль публикации в Visual Studio, а затем используйте dotnet на сервере CI:

dotnet publish /p:PublishProfile=PROFILE-NAME /p:Password=*****

https://github.com/aspnet/Docs/blob/master/aspnetcore/host-and-deploy/visual-studio-publish-profiles.md

person Auspex    schedule 22.08.2018