Ресурсы Автоматического Развертывания
Я знаю достаточно, чтобы знать, что нам нужно получить наше приложение для развертывания с одним действием пользователя. Однако Я ... --1-->не знать:
- какие хорошие инструменты использовать в магазине .NET?
- как вы управляете изменениями конфигурации для каждой из ваших сред?
может кто-нибудь указать мне на некоторые хорошие ресурсы для непрерывной интеграции. Я хотел бы видеть некоторую теорию, а также шаг за шагом практическую руководство.
изменить:
Мне нужно автоматизировать веб-развертывание прямо сейчас; однако я также хотел бы узнать, как это сделать для настольных приложений.
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, и проекты веб-развертывания для автоматизации сборки и развертывания в качестве стартера здесь:
затем я добавил к этому, чтобы показать 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 делает это просто играя.