Ресурсы автоматического развертывания
-
04-07-2019 - |
Вопрос
Я знаю достаточно, чтобы понять, что нам нужно заставить наше приложение развернуться с помощью одного действия пользователя.Тем не менее, я не надо знать:
- Какие хорошие инструменты можно использовать в .NET shop?
- Как вы управляете изменениями конфигурации для каждой из ваших сред?
Может ли кто-нибудь указать мне на какие-нибудь хорошие ресурсы для непрерывной интеграции?Я хотел бы ознакомиться с некоторой теорией, а также с пошаговым практическим руководством.
Редактировать:
Прямо сейчас мне нужно автоматизировать веб-развертывание;однако я также хотел бы узнать, как это сделать для настольных приложений.
Решение
Я написал сообщение в блоге, которое может оказаться полезным:
Проекты веб-развертывания 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 для автоматизации сборки и развертывания в качестве начального шага здесь:
Затем я добавил к этому, чтобы показать добавление 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 это просто играть вокруг.