Вопрос

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

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

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

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

Это было полезно?

Решение

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

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

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

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

Другие советы

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

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

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

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

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

Я написал довольно подробное сообщение в блоге, используя TeamCity и Web Deployment projects для автоматизации сборки и развертывания в качестве начального шага здесь:

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
  • Я создаю и развертываю сайт в локальной папке на сервере сборки
  • Я запускаю FTP-клиент командной строки, который поддерживает сценарии, вызываемые
  • WinSCP с использованием MSBUILD Task EXEC (http://winscp.net /)
  • Загружайте содержимое всех моих сайтов
  • Заказывайте [вставьте напиток] на выбор

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

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

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

  • Для развертывания:Развертывание ClickOnce должно это сделать.Вы просто публикуете свое настольное приложение, выбрав VS.net в меню "Сборка"> "Опубликовать".VS.net затем компилирует веб-страницу и setup.exe .Когда пользователи с IE или Firefox и .net 3.5 SP1 нажимают на ссылку, она запускается сразу.ClickOnce также обрабатывает обновление за вас, и для этого необходимо разработать обширный API.
  • Непрерывная интеграция - это совсем другое дело.Я предлагаю вам поискать в Google "CruiseControl.net", загрузить и опробовать как можно больше ресурсов.По сути, это сервер сборки, но вы можете подключить его к SVN, NUnit для тестирования и так далее.Я бы не советовал покупать книгу ради такого изменчивого продукта.Лучше всего скачать его и опробовать.

CruiseControl.СЕТЬ для вашего решения непрерывной интеграции.Для развертывания я использую файл проекта MSBuild.Кроме того, я сохраняю все конфигурационные файлы серверов.Я передаю MSBuild через параметры свойство сервера, которое сообщает MSBuild, какие значения конфигурации использовать, а затем завершает развертывание.Единственное развертывание, которое невозможно выполнить прямо из CruiseControl, - это развертывание на наших действующих серверах.Мы должны выйти из этой командной строки MSBuild просто чтобы случайно не нажать кнопку, или у кого был доступ к веб-панели cc.net это просто играть вокруг.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top