Автоматическое развертывание ресурсов - PullRequest
7 голосов
/ 24 октября 2008

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

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

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

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

Ответы [ 6 ]

5 голосов
/ 13 июля 2009

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

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

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

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

2 голосов
/ 24 октября 2008

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

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

1 голос
/ 12 февраля 2011

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

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

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

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

1 голос
/ 24 октября 2008

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

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

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

0 голосов
/ 24 октября 2008

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

0 голосов
/ 24 октября 2008

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

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