Ресурсы Автоматического Развертывания

Я знаю достаточно, чтобы знать, что нам нужно получить наше приложение для развертывания с одним действием пользователя. Однако Я ... --1-->не знать:

  1. какие хорошие инструменты использовать в магазине .NET?
  2. как вы управляете изменениями конфигурации для каждой из ваших сред?

может кто-нибудь указать мне на некоторые хорошие ресурсы для непрерывной интеграции. Я хотел бы видеть некоторую теорию, а также шаг за шагом практическую руководство.

изменить:
Мне нужно автоматизировать веб-развертывание прямо сейчас; однако я также хотел бы узнать, как это сделать для настольных приложений.

6 ответов


Я написал сообщение в блоге, которое может быть полезно:

Проекты Веб-Развертывания Visual Studio

ему полтора года, но говорили о некоторых новых (в то время) шаблонах проектов для VS, а также утилите командной строки из команды IIS под названием MSDeploy. Они звучали действительно многообещающе, и оказалось, что они идеально подходят для таргетинга нескольких конфигураций сборки, синхронизации нескольких серверов по ферме и большего контроля над фактическим выход развертывания сайта.

возможно, к настоящему времени технологии также созрели.


У нас был большой успех с установщик Windows XML. В принципе, вы определяете компоненты, которые составляют ваше приложение в XML, и WiX превращает это в пакет MSI. Документация относительно разрежена, но предоставленный CHM файл в сочетании с search fu поможет вам пройти долгий путь.

пакеты MSI могут принимать входные параметры для значений конфигурации и выполнять действия для управления файлами конфигурации после развертывания приложения. Для пример: "msiexec / i MyCustomPackage.msi SqlServer=SomeSQLBox " может развернуть веб-приложение и изменить запись конфигурации для зависимого поля SQL.


Visual Build Pro из Kinook-довольно хороший инструмент для развертывания одним щелчком мыши. Он прост в использовании и имеет множество возможностей. Я использую его в течение многих лет. Конечно, есть еще Нант, которым я не часто пользовался.

Что касается управления изменениями конфигурации, я управляю несколькими файлами конфигурации с расширениями, которые указывают среду развертывания, а затем просто делаю простое переименование в качестве шага в моем сценарии сборки.

например, если я развертываюсь в Тест, у меня может быть файл конфигурации под названием Web.тест.config, который автоматически переименовывается в Web.config по сценарию сборки.


Я написал довольно подробный пост в блоге, используя TeamCity, и проекты веб-развертывания для автоматизации сборки и развертывания в качестве стартера здесь:

http://www.diaryofaninja.com/blog/2010/05/09/automated-site-deployments-with-teamcity-deployment-projects-amp-svn

затем я добавил к этому, чтобы показать FTP сложение

http://www.diaryofaninja.com/blog/2010/09/21/continuous-integration-tip-1-ndash-ftp-deployment

основной поток процесса довольно проста:

  • используя сервер сборки teamcity, я загружаю из своего SVN repo
  • Я создаю и развертываю сайт в локальной папке на сервере сборки
  • я запускаю FTP-клиент командной строки, который поддерживает сценарии с именем
  • WinSCP с помощью MSBuild Task EXEC (http://winscp.net/)
  • загрузить все мои сайты контент
  • имейте [напиток вставки] выбора

затем я удостоверяюсь, что развертываю только магистраль моего SVN - РЕПО, и разрабатываю и тестирую все в ветке перед слиянием-таким образом развертывается только проверенный материал. Добавьте автоматическое тестирование в свой цикл сборки, и у вас есть матч, сделанный на небесах.

некоторые большие бесплатные инструменты, чтобы идти являются:


Я вижу два разных вопроса:

  • для развертывания: развертывание ClickOnce должно это сделать. Вы просто публикуете свое настольное приложение, зайдя в VS.net в меню сборка > опубликовать. VS.net затем компилирует веб-страницу и настройку.исполняемый. Когда пользователи с IE или Firefox и .net 3.5 SP1 нажимают на ссылку, она запускается сразу. ClickOnce также обрабатывает обновление для вас, и для него есть обширный API.
  • непрерывная интеграция очень отличается вещь. Я предлагаю вам погуглить для 'CruiseControl.net" и скачать и попробовать столько ресурсов, как вы можете. Это в основном сервер сборки, но вы можете подключить его к SVN, NUnit для тестирования и так далее. Я бы не советовал покупать книгу для такого Летучего продукта. Лучше всего скачать его и попробовать.

CruiseControl.NET для вашего решения ContinuousIntegration. Для развертывания я использую файл проекта MSBuild. В верхней части этого я храню все файлы конфигурации серверов. Я передаю MSBuild через параметры свойство сервера, которое сообщает MSbuild, какие значения конфигурации использовать, а затем завершает развертывание. Единственное развертывание, которое не может быть выполнено правильно с CruiseControl, - это развертывание на наших живых серверах. Мы оставляем эту командную строку MSBuild, чтобы случайно не нажать кнопку, или кто-то с доступом к CC.NET web dashboard делает это просто играя.