Получение MSDeploy, работающего на нашем сервере сборки/интеграции. Требуется ли обновление MSBuild?

У нас есть то, что я считаю довольно стандартным процессом сборки: 1. Разработчик: проверьте код 2. Построение: опросы репо, изменения и начало работы: 3. Сборка: обновления с репо, сборки с MSBuild, запуск модульных тестов с nunit, 4. Сборка: создает пакет установщика

Наша команда безопасности позволяет нам вытащить с сервера сборки, но не позволяет серверу сборки нажимать. Поэтому мы обычно устанавливаем rdp in, d/l установщиков и запускаем их, что исключает возможности использования slick-развертывания, поэтому мне нужно будет создавать пакеты вместо этого. Я хотел бы использовать MSDeploy, за исключением того, что у нас есть следующие проблемы:

  • Мы подключаемся к .net 3.5, а для целевой MSBuild (Package), использующей MSDeploy, требуется 4.0. Есть ли что-то, что мне нужно установить, кроме .net 4.0 RC для этого? (Будет ли MSBuild частью этого обновления?)
  • Когда я создаю пакеты с MSDeploy, я вижу, что у меня нет всего 1 файла. Там zip, deploy.cmd, SourceManifest.xml и SetParameters.xml. Для чего все остальные файлы, и почему бы им не быть в пакете?
  • Звучит так, как будто вы можете создавать пакеты, сообщая системе о работе на рабочем сайте IIS. Но если пакеты построены из среды CI, разве вам не повезло здесь? Похоже, они разработали некоторые из них для небольших разработчиков, развертывающих их среду разработки. Это прекрасный случай использования, но мне интересно узнать, что каждый опыт предприятия с помощью инструмента

Любые предложения?

Ответы

Ответ 1

Если вы не используете Visual Studio 2010 для своего приложения, я предлагаю вам выбрать одно из следующих значений:

  • Использовать msdeploy.exe
  • Установите Visual Studio 2010 на свой сервер сборки и сами задачи MSDeploy

Позвольте мне объяснить это немного больше.

Вариант 1

MSDeploy сам по себе не зависит от MSBuild, поэтому вы можете установить его самостоятельно на своем сервере сборки для создания пакетов для вас. Вы можете скачать его из здесь. После этого вы можете создать развертывание MSBuild script с помощью Exec для вызова msdeploy.exe с командой для создания вашего пакета.

О втором варианте

Файлы .targets, а также задачи для MSDeploy не развертываются с платформой .NET, но с самой Visual Studio 2010. Поэтому, если вы хотите использовать любой из них, вам придется установить VS 2010 на свой сервер сборки.

Вы упомянули использование цели в своем сообщении. Вы не сможете использовать это, потому что эта цель является частью более крупного процесса сборки для проектов .NET 4. Что вы можете сделать, так это создать отдельный файл MSBuild (отдельный, как в файле проекта), который использует MSBuild 4 для вызова задач, которые поставляются вместе с VS 2010 для веб-развертывания.

Здесь я отвечаю на ваш нумерованный список специально

  • Вам придется установить Visual Studio 2010, поскольку эти задачи поставляются с самим VS, а не с картой.
  • Эти файлы используются для взаимодействия с вашим пакетом. Ваш пакет представляет ваше приложение в целом. Deploy.cmd будет вызывать msdeploy.exe для развертывания для вас. SourceManifest.xml и SetParameters.xml используются для настройки развертывания вашего приложения. deploy.cmd будет использовать эти файлы при вызове msdeploy.exe. Другими словами, если вы хотите настроить путь к тому, где будет установлено веб-приложение, вы должны установить это в SetParameters.xml вместе с другими параметрами.
  • Ваши права могут быть получены из IIS, но многие разработчики предпочитают использовать сервер приложений VS вместо IIS. Это мое предпочтение. В этом случае я бы предложил развернуть приложение в среду, которую вы будете использовать в качестве шаблона. Внесите все необходимые параметры IIS, создайте пакет MSDeploy и затем возьмите файл archive.xml из пакета и используйте его при создании своего собственного пакета. Другой вариант - настроить сервер IIS, на который может быть развернут ваш процесс сборки, а затем использовать MSDeploy для синхронизации файлов, составляющих ваше приложение, а затем еще раз для создания пакета с этого сервера IIS.